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 について非常にわかりやすかった