Yii 学习笔记之扩展篇

关于模块化

1、用gii生成的时候modules下生成的第一层模块可以再config内的web配置项里配置模块的地址,在相应的控制器里实例化即可找到

$test = Yii::$app->getModule('user');
echo $test->runAction('default/test');

2、在模块中第二层模块需要在第一层模块的主类中定义

public function init()
    {
        parent::init();

        //在此处定义子模块对应的地址
        $this->modules = [
            'test111' => [
                'class' => 'app\modules\admin\modules\Test1',
            ],
        ];
        // custom initialization code goes here
    }

在实例此二层模块的时候需注意加上一级模块*

$test = Yii::$app->getModule('user/test111');
       
echo $test->runAction('default/test');

 

关于事件

一个比较好的例子是程序入口文件会执行yii\base\Application 类里的run()方法,然后会触发一些事件,可以通过以下的例子把一个事件加到其中会有相应的效果

Yii::$app->on(\yii\base\Application::EVENT_AFTER_REQUEST,function (){
     echo 'event jie shu le';
});

 

posted @ 2015-11-05 14:52  MayiCode  阅读(118)  评论(0)    收藏  举报