Phabricator 的自定义配置
Phabricator 是 Facebook 和其他受人尊敬的软件工程组织使用的优秀代码审查工具。 用户界面很漂亮,工作流程和工具简洁而全面,它是一个涵盖大多数用例的实用程序,包括 Web 和命令行。 我编写了许多 Phabricator 扩展,我发现创建一个供其他扩展使用的单个配置扩展非常有用。 让我们看看创建自己的自定义配置以在整个扩展中使用是多么容易!
创建配置扩展
首先创建一个扩展的新类 PhabricatorApplicationConfigOptions
:
1 2 3 4 5 6 |
final class PhabricatorBugzillaConfigOptions extends PhabricatorApplicationConfigOptions { // .... } |
填写几个样板方法:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
public function getName() { return pht('Bugzilla'); } public function getDescription() { return pht('Configure Bugzilla Settings.'); } public function getIcon() { return 'fa-cog'; } public function getGroup() { return 'apps'; } |
这 getOptions
方法是定义各个设置的地方; 让我们创建一些示例设置:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
public function getOptions() { return array( $this->newOption( 'bugzilla.url', 'string', 'https://bugzilla.mozilla.org') ->setDescription(pht('Full URL for the Bugzilla server.')), $this->newOption( 'bugzilla.automation_user', 'string', 'phab-bot@bmo.tld') ->setDescription(pht('Automation Username on Bugzilla.')), $this->newOption( 'bugzilla.timeout', 'int', 15) ->setDescription(pht('Bugzilla timeout in seconds.')), $this->newOption( 'bugzilla.require_bugs', 'bool', false) ->setDescription(pht('Require existing Bugzilla bug numbers for revisions.')), ); } |
这些设置以这种方式转换为 UI:
配置值类型很重要,因为 Phabricator 读取它并呈现与类型相关的字段; 例如, bool
类型提供真/假下拉菜单。
使用配置值
当你想在其他扩展中使用配置值时,你可以通过 key 引用这些配置值 PhabricatorEnv::getEnvConfig
调用:
1 2 3 4 |
// Use PhabricatorEnv::getEnvConfig() to get config values if(PhabricatorEnv::getEnvConfig('bugzilla.require_bugs') === true) { // ... } |
返回的值 getEnvConfig
是配置扩展中定义的类型。
我非常喜欢使用通过用户界面定义的配置值; 替代方案通常需要重新部署,在紧急情况下,这是最坏的情况。 当价值观很容易定义、改变和使用时,你就会发现自己处于双赢/双赢的局面,这就是它应该永远的样子!
由于网站搬家,部分链接失效,如无法下载,请联系站长!谢谢支持!
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » Phabricator 的自定义配置
1. 带 [亲测] 说明源码已经被站长亲测过!
2. 下载后的源码请在24小时内删除,仅供学习用途!
3. 分享目的仅供大家学习和交流,请不要用于商业用途!
4. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需!
5. 本站所有资源来源于站长上传和网络,如有侵权请邮件联系站长!
6. 没带 [亲测] 代表站长时间紧促,站长会保持每天更新 [亲测] 源码 !
7. 盗版ripro用户购买ripro美化无担保,若设置不成功/不生效我们不支持退款!
8. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解!
9. 如果你也有好源码或者教程,可以到审核区发布,分享有金币奖励和额外收入!
10.如果您购买了某个产品,而我们还没来得及更新,请联系站长或留言催更,谢谢理解 !
GG资源网 » Phabricator 的自定义配置