yii2:模块php
模块不一样于frontend/frontback单独的先后台单独的主题项目,模块不能单独部署,必须属于某个应用主体(如先后台:frontend/frontback)。web
模块置于module目录下,以demo为例:yii2
模块文件大体如上图,app
modules/ demo/ controllers/DefaultController.php views/default/index.php DemoModule.php
一、配置:frontend
将模块配置到config/web.php的文件配置中去,在配置文件中新增代码:yii
'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/indexspa