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' => 'appmodulesdemoDemoModule', ], ],
DemoModule.php:
DemoModule文件继承module类,并定于命名空间:
namespace appmodulesdemo; /** * demo module definition class */ class DemoModule extends yiiaseModule { /** * @inheritdoc */ public $controllerNamespace = 'appmodulesdemocontrollers'; /** * @inheritdoc */ public function init() { parent::init(); // custom initialization code goes here } }
DefaultController.php文件
DefaultController.php首页要定于命名空间:namespace appmodulesdemo(模块名)controllers;
namespace appmodulesdemocontrollers; use Yii; use yiiwebController; //use appcompon /** * 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