应用预览
插件可以长成什么样
下面是已内置与规划中的插件形态,都可以按同一套结构上架分发。
网址
应用图标式收藏夹,分组整理常用站点
记事本
日历归档、按时间检索,随写随存
网盘
文件存储、图片预览、传输记录时间轴
独立站
建站与内容发布,域名与主题统一管理
自营网店
自有商品与库存,订单履约一体化
主流网店
电商全链路:商品、订单、活动与对账
项目流程
任务看板、节点审批与进度提醒
行政管理
组织、权限、用章与审批留痕
会计出纳
收支流水、票据归档与月度汇总
客服统计
工单、响应时长与满意度分析
流量中心
访问来源、转化漏斗与渠道对比
分发能力
上架之后,剩下的事交给我们
版本、更新包、校验、鉴权与统计都在仓库侧完成,业务站只负责安装、更新与回滚。
多版本与校验
同一插件多版本共存,新版自动置顶;每个包记录大小与 SHA-256,下载后逐字节校验。
下载与安装统计
下载、安装与更新事件全部回流,按插件与站点汇总,随时对账。
账号与密钥
按站点分配接入账号,密钥可随时轮换,签名直连接口。
独立部署
独立目录与数据表前缀,可与业务站分开扩容与迁移。
更新包示例
一个完整的更新包,长这样
以 shop 1.1.1 → 1.2.0 为例:完整目录结构、manifest.json 与新增迁移 SQL,改版本号即可复用。
shop-1.2.0.zip
完整包 · 非差量补丁 版本号递增 迁移幂等打包时只打目录内容,ZIP 根目录必须直接是 manifest.json;历史迁移保持原样,只新增本次的 003。
目录结构 TREE
- manifest.jsonversion → 1.2.0
- routes.php不变
- migrations/
- 001_init.sql禁改
- 002_orders.sql禁改
- 003_order_remarks.sql新增
- src/Controller.php加备注接口
- src/Service/RemarkService.php新增
- docs/README.md更新说明
- web/index.html备注输入框
manifest.json JSON
{
"slug": "shop",
"name": "自营网店",
"version": "1.2.0",
"description": "商品、订单、活动与对账一体化的自营网店。",
"intro": "1.2.0:新增订单备注,支持详情编辑与列表检索。",
"icon": "bag",
"table_prefix": "p_shop_",
"nav": { "label": "网店", "order": 30, "path": "/app/shop/" },
"permissions": ["shop.read", "shop.write"],
"requires": []
}
migrations/003_order_remarks.sql SQL
CREATE TABLE IF NOT EXISTS p_shop_order_remarks (
id INT UNSIGNED NOT NULL AUTO_INCREMENT,
user_id INT UNSIGNED NOT NULL DEFAULT 0,
order_id INT UNSIGNED NOT NULL DEFAULT 0,
remark VARCHAR(200) NOT NULL DEFAULT '',
created_at DATETIME NOT NULL,
updated_at DATETIME NOT NULL,
PRIMARY KEY (id),
KEY idx_user_order (user_id, order_id)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
打包与上传 SHELL
cd /path/to/shop-1.2.0
zip -r ../shop-1.2.0.zip . -x "node_modules/*" ".git/*" "tests/*" "*.log"
unzip -l ../shop-1.2.0.zip | head -20 # 根目录必须直接是 manifest.json
sha256sum ../shop-1.2.0.zip # 上传后与仓库显示的 SHA-256 比对
# 后台「插件包」→ 展开 shop 分组 → 「上传更新包」→ 选择 shop-1.2.0.zip
# 业务站会员中心出现「有更新 v1.2.0」→ 一键更新(升级前自动备份)
- 版本号:修 Bug 用 1.1.(z+1),兼容新功能用 1.(y+1).0,不兼容用 (x+1).0.0。
- 迁移:每次安装 / 更新都会重跑全部 SQL,必须幂等;执行器会忽略报错,改表前先测试库验证。
- 上传:分组内上传,服务端校验 manifest.slug 与分组一致;新版置顶「最新」,旧版保留可回滚。
关于仓库
少一点耦合,
少一点耦合,
多一点可控。
仓库与业务站完全解耦:插件主代码在这里分发,业务站只保留安装记录与启用状态。这样每个插件都能独立升级,整站也能按需拆分部署。
- 独立目录、独立数据表前缀
- 更新包分组上传,旧版保留可回滚
- 签名接口 + SHA-256 校验
- 下载、安装、更新事件全量留痕
- 仓库已完成初始化