я обычно в проектах делаю BaseController, от которого потом расширяю все остальные.
BaseController.php:
<?php
namespace frontend\controllers;
use Yii;
use yii\web\Controller;
class BaseController extends Controller
{
public function init()
{
//some
}
}
SiteController.php:
<?php
namespace frontend\controllers;
use Yii;
class SiteController extends BaseController
{
public function actionIndex()
{
return $this->render('index');
}
}
это дает возможность в BaseController единожды определять некоторые переменные, которые потом требуются в остальных контроллерах
например:
<?php
namespace frontend\controllers;
use Yii;
use yii\web\Controller;
class BaseController extends Controller
{
public $userid;
public function init()
{
$this->userid = Yii::$app->user->identity->id;
}
}
все. Дальше в контроллерах мне не придется каждый раз писать Yii::$app->user->identity->id , достаточно $this->userid