2017-02-28 56 views
0

我想有类中,我居然把我的所有方法应该每次运行有人加载一个页面加载类,允许调用它InitRoutines。如何在每一个页面加载的先进应用

在yii2基本应用程序,我会做这样的事情。我会将类添加到组件配置文件中,并将其添加到引导程序中,因此很简单。

但我无法弄清楚如何做到这一点的先进应用,在共同理想/配置

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

如何可以完成高级的应用程序一样吗?

回答

0

我想我找到了解决办法,我不知道这是否是正确的方式,但它似乎工作。

的config.php

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

考虑创建一个自定义的''从警予\网络\ Controller'继承Controller'类。然后你可以把你的逻辑放入'beforeAction'方法中。 – Beowulfenator

+0

@Beowulfenator如果此解决方案有效,这是不是因为这样可以节省你改变所有生成的控制器宣言 – deacs

+0

@deacs该解决方案的是,这是主要的工作宗旨延长'警予\网络\ Controller'好得多 – Ripper

相关问题