按照模块来划分代码有利于后期维护,每个人都各自负责各自的代码减少代码冲突。
设置
在YII中配置模块很容易,只需要简单的几步操作即可:
- 创建模块目录(示例为admin模块)
- 在模块目录里创建
Module.php
文件,这是模块的加载类 - 在模块目录里创建控制器(controllers)、模型(models)、视图目录(views)
- 在配置文件中加载模块的配置
Module.php文件中的代码如下:
<?php
namespace app\admin;
class Module extends \yii\base\Module
{
public function init()
{
parent::init();
}
}
配置文件的设置(config/web.php)
'modules' => [
'admin' => [
#设置模块的Module.php类文件的位置
'class' => 'app\admin\Module',
],
],
这样访问http://www.test.com/admin/index
就可以显示出admin模块下IndexController.php控制的代码了。
模块常用的参数设置
在web.php
配置文件中的modules中还有很多可以自定义配置的参数。
class
这是必填的参数,告诉框架去那个地方加载类。
layout
布局参数,选填。不填则使用@app/views/layouts/main.php
的布局文件
如果不想在该模块下使用布局文件,把值设为false
表示禁止使用布局功能。
'modules' => [
'admin' => [
#设置模块的Module.php类文件的位置
'class' => 'app\admin\Module',
'layout'=> 'main'
],
],
框架会去寻找@app/admin/views/layouts/main.php文件。
params
模块参数,选填
有些参数需要整个模块共享,就可以通过该参数来设置。
在Module.php
文件中可以通过$this->params['dev']
来获取。
在模块下的控制器中可以通过$this->module->params['dev']
来获取。
'modules' => [
'admin' => [
#设置模块的Module.php类文件的位置
'class' => 'app\admin\Module',
'params'=> ['dev' => 'test']
],
],
version
模块版本号,选填。默认为1.0
在模块中可以通过$this->version
获取
在模块的控制器中通过$this->module->version
获取
defaultRoute
模块的默认路由,选填。
'modules' => [
'admin' => [
#设置模块的Module.php类文件的位置
'class' => 'app\admin\Module',
'defaultRoute'=> 'index/index',
],
],
访问index.php/admin
时,会寻址admin/index/index
网友评论