Yii2扩展性笔记

目录(?)[+]

yii扩展性

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

模块化

访问Gii创建模块

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

创建一级模块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就好

<?php

namespace 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
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值