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