TanzCMS开源CMS系统

应用市场打包规范

核心包、模块包、插件包、主题包的目录边界、依赖和发布前检查

更新:2026-05-31 03:20:44 浏览:5

应用市场打包规范

应用市场安装必须尊重核心、模块、插件和主题边界,不能用扩展包覆盖核心文件。

一、包类型

包类型 内容
核心包 TanzCMS 主版本代码和核心迁移
模块包 modules/{code}、模块资源、模块模板和模块数据
插件包 plugins/{code}、插件资源和插件模板
主题包 themes/{theme} 和公开主题资源

二、模块包边界

模块包可以包含:

modules/{code}
public/assets/modules/{code}
themes/default/modules/{code}

模块包不应覆盖:

app/
config/
routes/
public/assets/admin/js/公共后台脚本

如果模块依赖新的核心能力,应通过版本依赖要求用户先升级核心。

三、插件包边界

插件包可以包含:

plugins/{code}
public/assets/plugins/{code}
themes/default/plugins/{code}

插件不得把业务逻辑复制到核心,也不得修改核心配置或公共后台脚本。

四、主题包边界

主题包可以包含:

themes/{theme}
public/themes/{theme}

主题包不包含模块服务、插件服务、控制器、迁移和数据库数据。

五、必须排除

公开包通常排除:

.git/
node_modules/
tests/
docs/
storage/logs/
storage/framework/cache/
storage/framework/sessions/
storage/framework/views/
public/uploads/
.env
临时压缩包
本地脚本输出

六、安装流程

推荐流程:

  1. 下载到临时目录。
  2. 校验 hash、签名、manifest 和目标版本。
  3. 检查 PHP 扩展、数据库、模块和插件依赖。
  4. 复制自身文件。
  5. 执行迁移。
  6. 发布静态资源。
  7. 同步菜单、权限、标签和命令。
  8. 可选导入初始数据。
  9. 清理缓存。
  10. 写安装日志。

七、初始数据

带初始数据的模块应提供:

  • 空库导入。
  • 按唯一字段更新。
  • 清空后重新导入。
  • 跳过导入。

不要强制覆盖用户已经维护的数据。