我所说的正确 DocBlock 评论的意思是这样的评论:
提供PHPStorm IDE自动完成功能
这是课程本身:
class Factory_DomainObjects
{
/**
* Build domain object
*
* @param $name
*
* @return M_UserObject|M_TransactionObject
*/
public function build($name)
{
$class = 'M_' . $name . 'Object';
return new $class();
}
}
Core_Object
它根据$name
参数 从层次结构中返回一个对象。
当前Core_Object
层次结构如下所示:
我提供@return
了带有M_UserObject|M_TransactionObject
类型描述的标签。它为 PHPStorm 提供自动竞争并符合 PHPdoc 标准。
- 但这正是你想要的,有什么问题?
- 是与否,请继续阅读 :)
问题:
如果Core_Object
层次结构会发展到这样的程度怎么办?
这会将@return
标签描述变成一团糟:
/**
* @return M_TransactionObject|M_UserObject|M_Foo|M_Foo1|M_Foo2|M_Foo3|M_Bar|M_Bar1|M_Bar2|M_Bar3
*/
到目前为止我发现的唯一解决方法:build
对每个对象使用单独的方法,即
/**
* Build user domain object
*
* @return M_UserObject
*/
public function buildUser()
{
return new M_UserObject();
}
/**
* Build transaction domain object
*
* @return M_TransactionObject
*/
public function buildTransaction()
{
return new M_TransactionObject();
}
你认为我的解决方法有什么陷阱?你会建议什么?