web-dev-qa-db-ja.com

PHPDocオプションパラメータ

SO=には、このタイプの同様の質問が2つありますが、どの回答も機能しないようです。

PHPDocは、関数内のオプションのパラメーターをオプションとして認識しないようです。次に例を示します。

/**
 * Opens the connection and sets encoding
 * 
 * @param string $encoding Encoding.
 */
public function __construct($encoding='UTF-8') 
{
    $this->connect_mysqli();
    $this->set_encoding_mysqli($encoding);
}

$ encodingがオプションであることを認識すべきではありませんか、それともここで何か不足していますか?私は本当にグーグルでドキュメントを読んでみましたが、私が見つけたすべては次のとおりです:

パラメーターがオプションであることを( "$ paramname = 'a default value'"を介して)実際のコードで示さない場合は、パラメーターの説明でパラメーターがオプションであることを説明する必要があります。

したがって、コードには問題はありませんが、ドキュメントで得られるのは "__construct(string $ encoding)"であり、パラメータがオプションである場所には記号がありません。

31
user2742648

厳密に言えば、PHPは「オプションパラメータ」を認識していませんが、関数またはメソッドが呼び出されたときに省略できるデフォルト値のパラメータです。OK、それはオプションパラメータの最後にあります。しかしあなたの

@param string $encoding Encoding.

デフォルト値は文字列であるため、ここでは完全に正しいです。ドキュメントがあなたに伝えようとしていることは、あなたがそれをあなた自身のようにあなた自身に述べるべきだということです

@param string $encoding (optional) Encoding.

私はあなたに同意します、そのような表記は

__construct([$encoding])

または

__construct($encoding = 'UTF-8')

いいだろう。バグレポートを投稿できます

https://github.com/phpDocumentor/phpDocumentor2/issues?state=open

更新:実現、これはすでに言及されている https://github.com/phpDocumentor/phpDocumentor2/search?q=optional&type=Issues

39
KingCrunch