yii2:模块
yii2:模块
模块不同于frontend/frontback单独的前后台单独的主题项目,模块不能单独部署,必须属于某个应用主体(如前后台:frontend/frontback)。
模块置于module目录下,以demo为例:
模块文件大致如上图,
modules/ demo/ controllers/DefaultController.php views/default/index.php DemoModule.php
1、配置:
将模块配置到config/web.php的文件配置中去,在配置文件中新增代码:
'modules' => [ 'demo' => [ 'class' => 'app\modules\demo\DemoModule', ], ],
DemoModule.php:
DemoModule文件继承module类,并定于命名空间:
namespace app\modules\demo; /** * demo module definition class */ class DemoModule extends \yii\base\Module { /** * @inheritdoc */ public $controllerNamespace = 'app\modules\demo\controllers'; /** * @inheritdoc */ public function init() { parent::init(); // custom initialization code goes here } }
DefaultController.php文件
DefaultController.php首页要定于命名空间:namespace app\modules\demo(模块名)\controllers;
namespace app\modules\demo\controllers; use Yii; use yii\web\Controller; //use app\compon /** * Default controller for the `demo` module */ class DefaultController extends Controller { /** * Renders the index view for the module * @return string */ public function actionIndex() { echo "hello";exit; } }
访问地址:xxx.com/demo(模块名)/default/index