Addon

Addon.php位于applicaton/common/controller下。此控制器基类是所有应用安装目录addons/ 下所有控制器的最终父类,它定义所有应用控制器的公共成员变量和方法。其结构如下:

namespace app\common\controller;

class Addon extends BaseCtl
{
    protected $addonName;//应用名称
    protected $addonModule; //模块
    protected $addonController; //控制器
    protected $addonAction;  //操作
    protected $theme; //视图皮肤
    protected $addonInfoByDb;//应用配置已保存的信息
    protected $addonInfoByFile;//应用配置Config文件信息
    protected $addonRoot;//应用的根目录
    protected $addonM;  //addons模型
    protected $mid; //公众号id或小程序id
    protected $mpAddon; //公众号或小程序关联信息

    public function initialize()
    {
        parent::initialize(); // TODO: Change the autogenerated stub
        $this->setMid();
        $this->addonM = model('common/addons');
        $this->addonName = strtolower($this->request->param('addon'));
        $this->addonModule = strtolower($this->request->param('module'));
        $this->addonController = strtolower($this->request->param('col'));
        $this->addonAction = strtolower($this->request->param('act'));

        $this->setAddonInfo();
        $this->setMpAddon();
        $this->addonRoot = ADDON_PATH . $this->addonName . '/';
        session('addonName', $this->addonName);
    }

    /**
     * 设置公众号/小程序 ID
     * Author: fudaoji<fdj@kuryun.cn>
     */
    protected function setMid(){}

    /**
     * 设置公众号(小程序)与应用关联信息
     * Author: fudaoji<fdj@kuryun.cn>
     */
    protected function setMpAddon(){}

    /**
     * 设置应用信息
     * Author: fudaoji<fdj@kuryun.cn>
     */
    protected function setAddonInfo(){}

    /**
     * 统一视图,因为应用所在目录不同于普通模块,因此视图定义方式要单独处理
     * @param array $vars
     * @param string $template
     * @return mixed|void
     * Author: fudaoji<fdj@kuryun.cn>
     */
    public function show($vars = [], $template = ''){}
}