phpDocumentor
個人で開発をしていると、こういうチームワーク的な手法に手が回らない。
実感が湧かないからね。。。
公式?:phpDocumentor
公式?:@property
メンバ変数の型宣言をできる。
php では、メンバ変数を宣言する際に、型宣言を伴わない。
そのせいで phpStrom では、警告が出るらしい。
class User
{
private $name;
public function getName()
{
return $this->name;
}
public function setName($name)
{
$this->name = $name;
}
}
この User クラスをメンバ変数 $leader へ代入すると
$leader が何者か不明なために、User クラス内メソッドを利用する際に警告となるらしい。
そこで、下記のように @property アノテーションで定義してやることで
理解してもらえるそうな。
ちなみに、複数管理するメンバ変数には、User[] という他言語タイプで伝えるとよいらしい。
/**
* Class Group
*
* @property User $leader
* @property User[] $leaders <- array ではなく User[]
*/
class Group
{
private $leader;
private $leaders = [];
}
公式?:@method
findX のようなマジックメソッド利用時に用いる。
※マジックメソッドは、そんなメソッドは存在しないんだけど
メソッド名からフレームワーク側が解析して、処理してくれるメソッド?
/**
* Class SampleModel
*
* @method array findById($id, $fields = null)
*/
class SampleModel extends AppModel
{
このように明記してやることができる。
メソッド名を動的に生成する場合に用いる。
要は、当該メソッドがどこからも呼ばれていないと思われるのを避ける。
公式?:@uses & @used-by
class Hoge
{
/**
* @uses addUser(), addAdmin()
*/
public function addMember($user, $user_type)
{
$method = sprintf('add%s', $user_type);
$this->{$method}($user); // $user_type に合ったメソッドを呼ぶ
}
/**
* @used-by addMember
*/
private function addUser($user)
{
}
/**
* @used-by addMember
*/
private function addAdmin($user)
{
}
}
@uses の呼び出し元に設定する。
@uses の呼び出し先に設定する。
バシャログ。:PhpStorm の静的解析機能をさらに活用するための3つのアノテーション(2015-12-07)
→@property, @method, @uses について非常にわかりやすかった