3
/**
* @property $Property
*/
class SomeClass {

    public function __get($name){
       return $this->{'get'.$name};
    }

    /**
     * Some description
     * @return bool
     */
    public function getProperty(){
       return true;
    }

}

問題は、$Property のドキュメントを表示して getProperty() からの説明を確認するにはどうすればよいかということです。または、 getProperty() ドキュメントへのリンクを参照してください...

4

3 に答える 3

7

質問はタイトルの逆のようです。プロパティを見てゲッターの説明を確認しますか、それともゲッターを見てプロパティの説明を確認しますか?

私はあなたが両方を望んでいると仮定します。ただし、実際にはどちらも取得できません。せいぜい、一方の説明に他方へのリンクを含めることはできますが、実際には、その説明に他方の説明を含めることはできません。

ここでは、プロパティの説明にゲッターのドキュメントへのリンクが含まれます。

/**
 * @property $Property is controlled by {@link getProperty()}.
 */
class SomeClass {

    public function __get($name){
       return $this->{'get'.$name};
    }

    /**
     * Gets the value of {@link $Property}.
     * @return bool
     */
    public function getProperty(){
       return true;
    }

}

ここには複雑な問題が 2 つあります。{@link} インライン タグが実際に何かを行うかどうか。

phpDocumentor 1.x では、魔法のようなものは、クラス自体にリストされた追加情報としてのみ表示されます。phpDocumentor 2.x では、魔法のプロパティと魔法のメソッドの両方が、真のプロパティとメソッドであるかのように表示されます。2.x の動作は大幅に改善されています。IDE については、Eclipse PDT についてしか話せませんが、1.x の動作と一致していることがわかります。

phpDocumentor 1.x では、インラインの {@link} タグは機能し、通常、それが指す要素 (プロパティ、メソッド) のドキュメントへのハイパーリンクになります。しかし、1.x は実際には @property と @method によって識別される魔法の専用のドキュメントを作成しないため、"{@link $Property}" は実際には何かを指すことはできません。「@property $Property」の説明が表示されているクラス docblock 内のテキストがgetProperty() へのリンクを正しく表示している可能性がありますが、これは getProperty() が真のメソッドであり、独自のドキュメントを持っているためです。getProperty() が "@method getProperty()" で示される魔法のメソッドだった場合、"{@link getProperty()}" は指す場所がありません。

phpDocumentor 2.x では、インラインの {@link} タグが実装されていないため、タグの目的がないかのように、単なる可視テキストになります。2.x がこのインライン タグを実装すると、上記のソリューションで潜在的な質問の両方を解決できるはずです。

于 2013-11-01T16:15:47.943 に答える
0

クラスレベルの PHPDoc コメントを使用する

/**
 * @method string getMyFirstProperty()  Return value of the property called first
 * @method float  getMySecondProperty() Return value of the property called second
 */

はい、魔法のゲッターが IDE に表示されます。

于 2013-10-30T12:19:18.967 に答える