PHPDoc
GPT-4.icon
PHPDocコメントは、通常、対象となるコード(クラス、メソッド、プロパティなど)の直前に配置され、/**で始まり*/で終わります。各行はアスタリスク * で始めるのが一般的です。
code:php
/**
ここに説明文を記述します。
*/
クラスのドキュメント
@package:クラスが属するパッケージを指定。
@author:クラスの作成者。
@version:クラスのバージョン情報。
メソッドのドキュメント
@param:メソッドの引数を説明。型と変数名、説明を記述。
@return:メソッドの返り値の型と説明。
@throws:メソッドが投げる可能性のある例外。
@param-immediately-invoked-callable
@param-later-invoked-callable
遅延評価かどうか?
@param-closure-this
プロパティのドキュメント
@var:プロパティの型と説明。
その他の一般的なタグ
@deprecated:非推奨であることを示す。使用を避けるべき理由や代替案を記述。
@see:関連するクラスやメソッドへの参照を提供。
@example:使用例を提供。
@inheritdoc:親クラスやインターフェースのドキュメントを継承。
型の指定
単一型の場合:
code:php
/**
@var string ユーザー名
*/
private $username;
複数の型の場合(ユニオン型):
code:php
/**
@param int|string $id ユーザーID
*/
public function setId($id) {}
配列の場合:
code:php
/**
@var int[] ユーザーのID一覧
*/
private $userIds;
ジェネリックな配列の場合:
code:php
/**
@var array<string, int> ユーザー名とIDのマッピング
*/
private $userMap;
inline @var
code:php
/** @var Foo $foo */
$foo = createFoo();
あまり使うべきでない
強制的にその型と見なされる
PHPStanは常にそれを信頼する
inline @var はシンボルのすべての使用箇所で繰り返し記述する必要がある
代替案
stab fileを使う
assert()を使う
要件が満たされない場合にランタイムで例外が投げられる
code:php
$foo = createFoo();
assert($foo instanceof Foo);