⚙️ 模块配置系统

模块配置是多客怪兽框架中的核心组成部分,通过科学合理的配置设计,能够显著提升模块的灵活性、可维护性和扩展性。本文将详细介绍配置系统的关键组件和使用方法。

核心配置文件:Plugin.php

Plugin.php 作为模块的入口文件,定义了模块的基本信息和生命周期方法:

namespace addons\gs_example;
// 注意严格遵循命名空间规范
use think\Addons;
use hiduoke\services\FormBuilder as Form;

/**
 * 插件示例
 */
class Plugin extends Addons
{
    // 模块基本信息配置
    public $info = [
        'name'        => 'gs_example',    // 模块唯一标识
        'title'       => '示例应用',       // 模块显示名称
        'description' => '应用示例演示',    // 模块功能描述
        'status'      => 1,               // 默认启用状态
        'author'      => '怪兽开发团队',   // 开发者信息
        'type'        => 1,               // 应用类型:0插件,1微信公众号,2小程序,3企业微信,4抖音,5自由平台
        //'app_type'    => 'wx',          // 当type为2(小程序)时,需指定小程序平台类型
        'version'     => '1.0'            // 版本号
    ];
    
    /**
     * 模块初始化方法
     * 在模块每次加载时执行
     */
    protected function initialize()
    {
        parent::initialize();
    }
    
    /**
     * 模块安装方法
     * 在模块首次安装时执行
     * @return bool
     */
    public function install()
    {
        return true;
    }
    
    /**
     * 模块卸载方法
     * 清理模块相关数据和资源
     * @return bool
     */
    public function uninstall()
    {
        // 清理数据表
        dk_query("drop table __PREFIX__gs_example_user;");
        dk_query("drop table __PREFIX__gs_example_group;");
        // 移除自定义文件目录
        return true;
    }
    
    /**
     * 模块升级方法
     * 在模块版本更新时执行
     * @return bool
     */
    public function upgrade()
    {
        return true;
    }
}

功能配置文件:config.php

config.php 文件定义了模块的权限结构、路由规则和默认地址等关键配置:

<?php
return [
    // 应用权限配置
    'auth'   => [
        'admin.project' => [
            'title' => "项目管理",
            'value' => [
                'admin.project/table'   => '表格',
                'admin.project/index'   => '列表',
                'admin.project/edit'    => '编辑',
                'admin.project/add'     => '新增',
                'admin.project/del'     => '删除',
                'admin.project/recycle' => '回收站',
                'admin.project/destroy' => '销毁',
                'admin.project/test'    => '测试地址'
            ]
        ]
    ],
    
    // 路由配置规则
    'routes' => [
        // API接口路由配置示例
        'api/[:action]'     => 'api.index/[:action]' //当前将/api.index/index转换为:/api/index
    ],
    
    // 默认访问地址
    'url'    => [
        "home" => "index/index"  // 模块首页地址
    ]
];

下图展示了权限配置在管理后台中的实际效果:

权限配置实例

嵌入点配置:Hook.php

当前未开放,待开发,这里大概参考Discuz的嵌入点模式,让系统本身支持更多功能,但是目前有几个问题。

  • 1、系统已经采用Vue打包了,无法像php模板引擎那样做嵌入点。
  • 2、系统框架是Vue2,打算未来采用Vue3重构一次。
  • 3、目前系统本身的用户群体并不大,未来可以打算做一个典型插件示例。
  • 4、当前也有插件,比如开发者工具,采用的就是腾讯无界微前端。