Fecshop 模块开发

2018-05-24 14:23 更新

Fecshop 模块开发

此处说的模块,就是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等等很多模块参数的初始化。

模块的controllers部分:模块的控制层部分,这里

模块的block部分:模块的中间逻辑处理层,处理完成的数据返回controllers

模块的helpers部分:帮助类,一般是一些静态类处理部分。一些非数据库的操作处理。

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

以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号