2017-10-15 15 views
2

PHPを使用して__callクラスを2つのクラスに拡張する場合、@methodを使用してメソッドが存在することをIDEに知らせることができます。PHPDocの@method行で@seeを使用できますか?

しかし、メソッドの宣言にジャンプするようにIDEに指示すると、@ method-rowになります。これは、上にまたは下に@seeの行を追加する方法です。しかし、その行と区切り行を追加すると、PHPDocは3倍長くなります。

@seeを同じ行に追加することはできますか?

一部の例をそのまま使用しているものもあれば、他の例を内部で使用しているものもあります{}。 IDE(PhpStorm)でテストしました。@seeの宣言へのジャンプは、別の行にある場合にのみ機能します。

@methodと同じ行に@seeを使用できるようにするPHPDocはありますか?もしそうなら、正しい構文は何ですか?

例:

<?php 
class a { function ma() { return "a"; } } 
class b { function mb() { return "b"; } } 

/** 
* Class c 
* 
* @method string mb() { @see b::mb() } 
*/ 
class c extends a 
{ 
    /** @var b b */ 
    public $b; 

    function __construct() { $this->b = new b(); } 
    function mc() { return "c"; } 

    function __call($name, $arguments) 
    { 
     return call_user_func_array([$this->b, $name], $arguments); 
    } 
} 

$c = new c(); 
var_dump($c->mb()); 

答えて

1

たPHPDocはまだ正式な標準を持っていません。 PHPDocumentorはデファクトスタンダードですが、PHP FIGは1つでも動作しています。 the PHPStorm docsから

たPHPDocコメントでは、PhpStormはZEND、PEAR、および他の規格に準拠した書式設定オプションをサポートしています。

あなたと私は両方とも、PHPStormがサポートしているものを正確に把握するために試行錯誤することを発見しました。

のphpDocumentorはサポート@seeインライン行います

構造要素を、あるいは@seeタグが付いて長い説明ではインラインテキストは、その説明にリンクが表示されます。

PHP図のproposed standard状態:

特定のタグは「タグ」の定義の末尾に「インラインたPHPDoc」セクションを持っているかもしれません...例は@methodタグです。このタグは、関数、メソッドでサポートされているパラメータ、戻り値、その他のタグに関する追加情報を提供するために "Inline PHPDoc"を使用して拡張することができます。

奇妙なことに、@methodの定義はこれを明示的にしません。

これはPHPDocコメントの@method行で@seeを使うことができるという意味ですが、PHPStormがそれをまだ認識していないと考えています。あなたの構文は正しいですし、 "標準"によると、@メソッドの最後に残るはずです。

関連する問題