【发布时间】:2013-03-14 21:33:58
【问题描述】:
我所说的正确的 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();
}
}
它根据$name 参数从Core_Object 层次结构中返回一个对象。
目前Core_Object 层次结构如下所示:
我提供了带有M_UserObject|M_TransactionObject 类型描述的@return 标签。为 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();
}
您认为我的解决方法存在哪些缺陷?你会建议什么?
【问题讨论】:
标签: php oop autocomplete phpstorm phpdoc