模块结构
在Yii2 中模块是可以无限级嵌套的,也就是说,模块可以包含另一个包含模块的模块,我们称前者为父模块,后者为子模块, 子模块必须在父模块的yiibaseModule::modules属性中申明,例如:
在Yii2的advanced版本的rest-api下建立嵌套模块,在forum模块(父模块)下嵌入admin模块(子模块)
api下的modules的文件结构如下
--api
----modules
------forum(父模块)
--------Module.php
--------controllers
--------models
--------admin(子模块)
----------Module.php
----------models
----------controllers
父模块的配置
forum下的Module.php需要修改init方法
namespace api\modules\forum;
class Module extends \yii\base\Module
{
public $controllerNamespace = 'api\modules\forum\controllers';
public function init()
{
parent::init();
$this->modules = [
'admin' => [
// 此处应考虑使用一个更短的命名空间
'class' => 'api\modules\forum\admin\Module',
],
];
}
}
子模块的配置
admin下的Module.php
namespace api\modules\forum\admin;
class Module extends \yii\base\Module
{
public $controllerNamespace = 'api\modules\forum\admin\controllers';
public function init()
{
parent::init();
// \Yii::configure($this, require(__DIR__ . '/config.php'));
}
}
模块路由
在嵌套模块中的控制器,它的路由应包含它所有祖先模块的ID,例如forum/admin/default/index 代表 在模块forum中子模块admin中default控制器的index操作。
**粗体** _斜体_ [链接](http://example.com) `代码` - 列表 > 引用
。你还可以使用@
来通知其他用户。