拡張子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
*
*/
?>
参考はここです。