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
    }
}

生成的文件結構爲:

這裏寫圖片描述

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章