Fecshop 模塊開發(fā)

2018-05-24 14:23 更新

Fecshop 模塊開發(fā)

此處說的模塊,就是Yii2框架的模塊。下面是如何定義一個(gè)模塊,
以cms模塊為例

添加模塊

1.添加配置 , @fecshop/app/appfront/config/modules/Cms.php

return [
    'cms' => [
        'class' => '\fecshop\app\appfront\modules\Cms\Module',
    ],
];

這里定義了模塊的名字,以及模塊的入口文件:

2.入口文件內(nèi)容如下:

<?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__;

        
        # 指定默認(rèn)的man文件
        //$this->layout = "home.php";
        Yii::$service->page->theme->layoutFile = 'home.php';
        parent::init();  

        
    }
}

這里面對(duì)模塊進(jìn)行了初始化。

$this->controllerNamespace : 指的是模塊的controller路徑

$this->blockNamespace : 指的是模塊的block路徑

Yii::$service->page->theme->layoutFile = 'home.php';: 指定模板layout下面的 文件名字

模塊的結(jié)構(gòu):

模塊里面有幾個(gè)部分:

模塊入口部分:Modules.php,這里是模塊配置中class對(duì)應(yīng)的文件, 這個(gè)文件里面定義了controllers,block等等很多模塊參數(shù)的初始化。

模塊的controllers部分:模塊的控制層部分,這里

模塊的block部分:模塊的中間邏輯處理層,處理完成的數(shù)據(jù)返回controllers

模塊的helpers部分:幫助類,一般是一些靜態(tài)類處理部分。一些非數(shù)據(jù)庫的操作處理。

如果您想要重寫模塊,可以在配置部分的class指向您重寫的文件地址即可。

以上內(nèi)容是否對(duì)您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號(hào)
微信公眾號(hào)

編程獅公眾號(hào)