PHPStormにコード補完させる in CakePHP3のテンプレート

拡張子ctpで表されるテンプレートファイルはHTMLとPHPが混在するファイルで非常に便利です。

しかし、PHPStormには、テンプレートファイルが何のクラスのインスタンスなのか理解できません。コントローラから$this->set(compact('hoge'))のようにセットされた変数も同様です。

つまりコード補完も効きません。

コード補完を効かせるためには、テンプレートがどのインスタンスなのか等をPHPDocに書いてやる必要があります。

PHPDocで変数の型を補足するのは、 @var クラス 変数名 の書式です。

これをテンプレートファイルの先頭に書きます。

 

<?php
/**
*
* ①対象:テンプレートファイルすべて
* テンプレートはすべてこのインスタンスとなる
* @var \App\View\AppView $this
*
* ②対象:コントローラから変数をセットしているテンプレートすべて
* 変数が存在することを宣言、そして、その型を指定する
* 例1 シンプルな例
* @var String $season
* 例2 配列の場合
* @var \App\Model\Entity\User[][] $users
*
*/
?>

 

参考はここです。

bashalog.c-brains.jp