Исправляем ошибки phpstan после обновления Yii2 до 2.0.53

Начиная с версии 2.0.53 в Yii framework добавили дженерики в описание некоторых классов. Это приводит к ошибкам phpstan вида: Method app\controllers\TestController::beforeAction() has parameter $action with generic class yii\base\Action but does not specify its types: T
Как правило, эти ошибки актуальны для контроллеров и моделей. Далее разберу несколько примеров и приведу аннотации для исправления.
Пример для реляций AR при phpstan ошибке Method app\models\Post::getAuthor() return type with generic class yii\db\ActiveQuery does not specify its types: T:
/**
* @return \yii\db\ActiveQuery
*/
public function getAuthor(): \yii\db\ActiveQuery
{
return $this->hasOne(Author::class, ['id' => 'author_id']);
}
Следующая частая причина связана с переопредлением метода beforeAction:
/**
* @param \yii\base\Action $action
*/
public function beforeAction($action): bool
{
if ($action->id == 'callback') {
$this->enableCsrfValidation = false;
}
return parent::beforeAction($action);
}
И заключительная ошибка возникает при реализации своих экшенов Class app\actions\UpdateImageAction extends generic class yii\base\Action but does not specify its types: T:
/**
* @extends Action
*/
class UpdateImageAction extends \yii\base\Action
{
}
Остальные проблемы, связанные с does not specify its types: T, решаются аналогичным образом.
