建站教程

建站教程

Products

当前位置:首页 > 建站教程 >

检索 Phabricator 对象的自定义字段值

GG网络技术分享 2025-03-18 16:08 0


Phabricator 是一个编码非常好的 PHP 应用程序,但在文档方面缺少一点。 再说一次,什么开源项目不是? 在过去的几个月里,我一直在慢慢地将 Phabricator(一种新的审查工具)与 Bugzilla(一个更老的工具)集成。 最近一步看到我需要添加一个自定义字段(DifferentialCommitMessageCustomField 类扩展)到修订:

Phabricator 错误 ID

创建 DifferentialCommitMessageCustomField 扩展相当简单,但由于结构 DifferentialRevision 和其他 Phabricator 类,检索该字段值并不像人们希望的那么容易。 在尝试了各种方法并梳理了类链源代码之后,Aviv Eyal 提供了一个很好的实用函数来检索给定 Phabricator 对象类型的自定义字段数据:

function get_custom_field_value($object, $key_field) {

$field = PhabricatorCustomField::getObjectField(

$object,

PhabricatorCustomField::ROLE_DEFAULT,

$key_field

);

id(new PhabricatorCustomFieldStorageQuery())

->addField($field)

->execute();

$value = $field->getValueForStorage();

return $value;

}

就我而言, $object 曾经是一个 DifferentialRevision$key_fielddifferential:bugzilla-bug-id,定义在我的 DifferentialCommitMessageCustomField 延期。 如果您要添加一个 CustomField 任何类型的任何 Phabication 应用程序,您都可以使用相同的方法。

当缺乏文档并且继承级别有十几个级别时,社区成员可以互相帮助是很棒的——这对项目来说很重要。

标签:

提交需求或反馈

Demand feedback