版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u014559227/article/details/77527285
在项目根目录下面我们创建目录 modules 来存放模块(当然如果不喜欢的话可以随意取名)。
TestModule 自定TestModule 模块
位置 app\modules\TestModule
模块目录接口
--components 自定义组件存放目录
--controllers 控制器目录
--config 应用配置目录
--web 能让客户端直接访问的目录
--modules 模块存放目录
--TestModules 自定义TestModule 模块
-- TestModule.php 模块文件
-- controllers 模块控制器文件存放目录
-- IndexController.php IndexController 控制器
-- models 模块模型存放目录
-- views 模块模版文件存放目录
-- index IndexController 控制器模版文件所在目录
-- demo-view.php 模版文件 demo-view.php
--models 模型目录
模块入口文件 TestModule.php
<?php
namespace app\modules\TestModule;
use yii\base\Module; // 所有的模块都必须继承yii Module 类
class TestModule extends Module
{
//待会儿在配置文件中会讲解这里
public $testName;
public $testAge;
public function init()
{
//指定该目录控制器的所在命名空间
$this->controllerNamespace = 'app\modules\TestModule\controllers';
}
}
?>
模块TestModule controllers IndexController.php
namespace app\modules\TestModule\controller;
use Yii;
use yii\web\Controller; //要想被访问 得继承yii web Controller
class IndexController extends Controller
{
public function actionIndex()
{
echo Yii::$app->controller->module->testName;
echo Yii::$app->controller->module->testAge;
}
public function actionDemoView()
{
$model = array(
'name' => Yii::$app->controller->module->testName;
'age' => Yii::$app->controller->module->testAge;
);
return $this->render('demo-view',$model);
}
}
demo-view.php
<?php
use yii\helpers\Html;
?>
<?php
echo Html::encode($name);
?>
<br />
<?php
echo Html::encode($age);
?>
做到这一步后我们一个简单的模块就做好了。 现在要把该模块注册进应用主体,使客户端能够访问。
config/web.php
<?php
[
'modules' => [
'TestModule' => [
'class' => 'app\modules\TestModule\TestModule', //指向模块入口文件
'testName'=>'谭勇', //对模块入口类的属性注入
'testAge' => 22 //对模块入口类的属性注入
]
]
]
?>
然后我们在浏览器上输入
http://host/index.php?r=TestModule/index/index
http://host/index.php?r=TestModule/index/demo-view
访问试试