Yii2扩展性笔记

来源:互联网 发布:解压缩软件官方下载 编辑:程序博客网 时间:2024/06/05 11:23

yii扩展性

  • 模块化
  • 事件机制
  • mixin(混合、多重继承)
  • 依赖注入

模块化

访问Gii创建模块

http://127.0.0.1/Yii/yii2-demo/web/index.php?r=gii

创建一级模块article

,如下所示:
这里写图片描述

生成模块后,需要在config\web.php中配置模块参考

<?php$params = require(__DIR__ . '/params.php');$config = [   'modules' => [        'article' => [            'class' => 'app\modules\article\article',//上图提示参数粘贴到web.php        ],    ], 

一级模块访问:

第一种:需要通过在controller中的文件访问子模块

class GiilearnController extends Controller{    /**     * 1)     * http://127.0.0.1/Yii/yii2-demo/web/index.php?r=giilearn/index     * 访问上述地址即可到达子模块     * 2)直接访问子模块     * http://127.0.0.1/Yii/yii2-demo/web/index.php?r=article/default/index     */    public function actionIndex()    {        //获取子模块,读取的是子模块的ID,子模块需要在config\web.php中配置        $article = \Yii::$app ->getModule('article');        //调用子模块的操作        $article ->runAction('default/index');    }}

第一种:直接访问子模块

http://127.0.0.1/Yii/yii2-demo/web/index.php?r=article/default/index

创建二级模块category

此模块创建于article模块下,即为article的子模块,如下所示
这里写图片描述

子模块下的子模块的配置信息最好写在上一级模块生成的模块id的php文件中,比如例子所示的分类模块(子模块下的子模块的配置信息最好写在上一级模块生成的模块id的php文件中,比如例子所示的分类模块的父模块是article,此时把分类模块的配置写在article.php就好)的父模块是Article,此时配置Article.php就好

<?phpnamespace app\modules\article;class article extends \yii\base\Module{    public $controllerNamespace = 'app\modules\article\controllers';    public function init()    {        parent::init();        //在父模块中配置子模块http://127.0.0.1/Yii/yii2-demo/web/index.php?r=article/category/default/index        $this->modules = [            'category' => [                   'class' => 'app\modules\article\modules\category\category',               ],                    ];        // custom initialization code goes here    }}

生成的文件结构为:

这里写图片描述

0 0
原创粉丝点击