如何在高级应用程序的每个页面加载时加载 class

How to load class at every page load in advanced app

我想要 class 每次有人加载页面时,我都会把我应该 运行 的所有方法都放在里面,我们称之为 InitRoutines。

在 yii2 基本应用程序中,我会做这样的事情。我会将 class 添加到组件配置文件,然后将其添加到 bootstrap,就这么简单。

但我不知道如何在高级应用程序中做到这一点,最好在 common/config

config.php

$config = [
    // ..
    'components' => [
        'InitRoutines' => [
            'class' => 'app\commands\InitRoutines',
        ],
    ],
];

$config['bootstrap'][] = 'InitRoutines';

在 InitRoutines 中,我有 init class,其中 运行 我在页面加载时需要的一切。

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();
    }
}

如何在高级应用程序中完成相同的操作?

我想我找到了解决方案,我不知道它是否正确,但它似乎有效。

config.php

return [
    // ...
    'components' => [
        'InitRoutines' => [
            'class' => 'common\commands\InitRoutines',
        ],
    ],
    'bootstrap' => [
        'log',
        'common\commands\InitRoutines'
    ],
];