YII2支持多模块开发,需要在根目录下创建Modules文件夹
文件夹下包含需要创建的模块,如user,admin等
以user模块为例:
文件夹内包括controllers,models,views三个文件夹和一个UserModule模块类
该模块类继承自Module类,包含一个公共init方法,包含一些初始化代码并且可以自动加载。
在config/web.php文件,在$config数组中加入以下代码以配置该模块:
'modules' => array(
'user' => [
'class' => 'app\modules\user\UserModule',
],
),
模块中的控制器,模型等均使用包含user的命名空间以正常使用。
例:
user模块下包含一个PublicController控制器,内容如下:
<?php
namespace app\modules\user\controllers;
use yii\web\Controller;
use app\modules\user\models\User;
class PublicController extends Controller
{
public function actionIndex()
{
return $this->render('/public/index');
}
}
在该模块views目录下包含一个public文件夹,里面包含一个index.php文件,内容如下:
<html>
<body>
hello public/index
</body>
</html>
通过http://servername/user/public/index即可访问,浏览器正常显示。