版權聲明:本文爲博主原創文章,未經博主允許不得轉載。 https://blog.csdn.net/liuzp111/article/details/53326024
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
}
}
生成的文件結構爲: