yii2:模块

模块不同于frontend/frontback单独的前后台单独的主题项目,模块不能单独部署,必须属于某个应用主体(如前后台:frontend/frontback)。

模块置于module目录下,以demo为例:

yii2:模块_php

模块文件大致如上图,



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