W3Cschool
恭喜您成為首批注冊用戶
獲得88經(jīng)驗值獎勵
此處說的模塊,就是Yii2框架的模塊。下面是如何定義一個模塊,
以cms模塊為例
1.添加配置 , @fecshop/app/appfront/config/modules/Cms.php
return [
'cms' => [
'class' => '\fecshop\app\appfront\modules\Cms\Module',
],
];
這里定義了模塊的名字,以及模塊的入口文件:
2.入口文件內容如下:
<?php
namespace fecshop\app\appfront\modules\Cms;
use Yii;
use fecshop\app\appfront\modules\AppfrontModule;
class Module extends AppfrontModule
{
public $blockNamespace;
public function init()
{
# 以下代碼必須指定
$nameSpace = __NAMESPACE__;
# web controller
if (Yii::$app instanceof \yii\web\Application) {
$this->controllerNamespace = $nameSpace . '\\controllers';
$this->blockNamespace = $nameSpace . '\\block';
# console controller
} elseif (Yii::$app instanceof \yii\console\Application) {
$this->controllerNamespace = $nameSpace . '\\console\\controllers';
$this->blockNamespace = $nameSpace . '\\console\\block';
}
//$this->_currentDir = __DIR__ ;
//$this->_currentNameSpace = __NAMESPACE__;
# 指定默認的man文件
//$this->layout = "home.php";
Yii::$service->page->theme->layoutFile = 'home.php';
parent::init();
}
}
這里面對模塊進行了初始化。
$this->controllerNamespace
: 指的是模塊的controller路徑
$this->blockNamespace
: 指的是模塊的block路徑
Yii::$service->page->theme->layoutFile = 'home.php';
: 指定模板layout下面的
文件名字
模塊里面有幾個部分:
模塊入口部分:Modules.php,這里是模塊配置中class對應的文件, 這個文件里面定義了controllers,block等等很多模塊參數(shù)的初始化。
模塊的controllers部分:模塊的控制層部分,這里
模塊的block部分:模塊的中間邏輯處理層,處理完成的數(shù)據(jù)返回controllers
模塊的helpers部分:幫助類,一般是一些靜態(tài)類處理部分。一些非數(shù)據(jù)庫的操作處理。
如果您想要重寫模塊,可以在配置部分的class指向您重寫的文件地址即可。
Copyright©2021 w3cschool編程獅|閩ICP備15016281號-3|閩公網(wǎng)安備35020302033924號
違法和不良信息舉報電話:173-0602-2364|舉報郵箱:jubao@eeedong.com
掃描二維碼
下載編程獅App
編程獅公眾號
聯(lián)系方式:
更多建議: