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

时间:2017-02-28 00:45:20

标签: yii2 yii2-advanced-app

我希望有一个类,我会在每次有人加载页面时放入我应该运行的所有方法,让我们称之为InitRoutines。

在yii2基本应用程序中,我会做这样的事情。我会将类添加到compontents配置文件中,并将其添加到bootstrap中,就像那样简单。

但我无法弄清楚如何在高级应用中做到这一点,最好是普通的/ config

的config.php

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

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

在InitRoutines中我有init类,它在页面加载时运行我需要的所有内容。

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

如何在高级应用中完成相同的工作?

1 个答案:

答案 0 :(得分:0)

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

<强>的config.php

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