適切なDocBlockコメントとは、次のようなコメントです。
PHPDoc標準に準拠
PHPStormIDEオートコンプリートを提供します
クラス自体は次のとおりです。
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
に応じて階層から1つのオブジェクトを返します。$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();
}
私の回避策にはどのような落とし穴があると思いますか?代わりに何を提案しますか?