2017-05-23 3 views
0

documentationからこれに関する明確な答えを実際に解釈できませんでした。phpDocumentor - 他の要素へのコメント参照には完全修飾パスが必要ですか?

たとえば、@seeまたは@paramコメントで別の構造要素への参照を追加する場合、2つの要素が互いにローカルであっても、必ず要素の完全修飾名を使用する必要がありますか?

オブジェクトの階層

Animals 
    --- Mammals 
     --- Cat 
     --- Dog 

私が参照したいと思うCatクラスの中で言えば、犬。彼らは同じ名前空間内に存在するので、完全なパスを与える必要がありますか?いずれにしても問題がなければ、ベストプラクティスはありますか?とにかく、コードを読んでいる開発者があいまいさや誤解を取り除くために、完全修飾パスを使用する必要がありますか?

namespace Animals\Mammals; 

class Cat 
{ 

    /** 
    * @param Dog $dog An instance of a Dog. 
    * 
    * OR 
    * 
    * @param \Animals\Mammals\Dog $dog An instance of a Dog. 
    */ 
    public function foo(Dog $dog) 
    { 
     // ... 
    } 
} 
+1

https://www.phpdoc.org/docs/latest/references/phpdoc/types.html –

答えて

2

いいえ、必要ありません。

Definition of a ‘Type’

このタイプは言及されている文脈から見て有効なクラス名。 したがって、完全修飾クラス名(FQCN)か、ネームスペースにローカル名がある場合は のいずれかになります。

phpDocumentorのは、そのクラスの型が文書化されなければならない必要があります。戻り値の型が、その後のphpDocumentor、 そのクラスのドキュメントへのリンクによって文書化されたクラスがある

@param

場合供給される。

1

名前空間宣言にuseステートメントがある場合は、完全修飾パスは必要ありません。

また、もう1つ。あなたの例では、Animals \ Mammals \ DogはAnimals \ Mammals \ Catと同じネームスペースにあるので、useステートメントは必要なく、Dogに直接アクセスできます。

関連する問題