Yii - 模块

版权声明:本文为博主原创文章,未经博主允许不得转载。 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
访问试试

猜你喜欢

转载自blog.csdn.net/u014559227/article/details/77527285
yii