Yii框架2.0的模块

时间:2022-10-04 19:32:51

模块是个独立的软件单元,也是又控制器,视图,模型组成的,也可以有自己的布局。但他必须属于某个应用下,不能独立存在。

其中模块的控制器,视图和应用的控制器和视图使用基本相同,不作赘述,下面说说模块的使用。首先可以通过前面说的Gii来生成一个模块,然后配置模块,再web.php 配置文件里加入下面的东西。

[
    'modules' => [
        'admin' => [
            'class' => 'app\modules\admin\Module',
            // ... 模块其他配置 ...
        ],
    ],
]

在访问的时候就要比应用多一级目录了,就是模块id这一级。

 在代码中获取模块分三种情况。

$module = MyModuleClass::getInstance(); //MyModuleClass对应的是模块类
// 获取ID为 "forum" 的模块
$module = \Yii::$app->getModule('forum');

// 获取处理当前请求控制器所属的模块
$module = \Yii::$app->controller->module;

 

引导启动:下面的配置表示debug模块在每个请求下都运行。

[
    'bootstrap' => [
        'debug',
    ],

    'modules' => [
        'debug' => 'yii\debug\Module',
    ],
]

 

最后说明下,模块是可以嵌套的。

其实模块也是为了提高代码的重用性。一些常用特性,如用户管理,评论管理,可以开发成模块, 这样在相关项目中非常容易被重用。