0
誰かがページをロードするたびに実行する必要があるすべてのメソッドを配置するクラスを持っていて、InitRoutinesと呼ぶことができます。アドバンスドアプリケーションですべてのページロード時にクラスをロードする方法
yii2基本アプリでは、このようなことをやります。 configtファイルにクラスを追加し、それをブートストラップに追加します。
しかし、私は、共通の/ configに
config.phpの
$config = [
// ..
'components' => [
'InitRoutines' => [
'class' => 'app\commands\InitRoutines',
],
],
];
$config['bootstrap'][] = 'InitRoutines';
そしてInitRoutinesに私はすべて私を実行するクラスを初期化しているで好ましい、高度なアプリでそれを行う方法を見つけ出すことはできませんページの読み込みが必要です。
InitRoutines.php
私は、高度なアプリで同じ達成することができますどのようにnamespace app\commands;
use Yii;
use yii\base\Component;
use app\commands\AppHelper;
use app\commands\Access;
class InitRoutines extends Component
{
public function init()
{
parent::init();
Access::checkForMaintenance();
Yii::$app->language = AppHelper::getUserLanguageCode();
}
}
?
は 'のYii \ウェブ\ Controller'から継承されたカスタム' Controller'クラスを作成することを検討してください。そして、あなたのロジックを 'beforeAction'メソッドに入れることができます。 – Beowulfenator
@Beowulfenatorこのソリューションが動作するなら、 'yii \ web \ Controller'を拡張するよりはるかに優れています。これは、生成されたすべてのコントローラの宣言を変更する作業を保存するためです。 – deacs
@deacs yesこのソリューションの主な目的 – Ripper