插件系统
灯塔 CMS v1.3 提供进程内模块化插件运行时,兼容普通 PHP 共享主机。插件由 plugin.json Manifest 描述,启用或停用时编译为 PHP 缓存,正常请求无需扫描插件目录。
扩展能力
| 能力 | 用途 |
|---|---|
routes | 注册前台、后台、API 或 Webhook 路由,支持 standalone、theme 和 admin 布局。 |
events / filters | 监听表单、询盘等事件,或修改商品列表、详情和表单数据。 |
slots | 向页面 head、body、内容前后和 footer 注入可控输出。 |
services | 通过服务注册表提供或消费订单、支付、会员、通知、积分、购物车等业务能力。 |
jobs | 执行定时任务、重试任务和可分片的长任务。 |
admin_menu / permissions | 把插件页面加入后台业务分组,并为 Staff 动态增加权限。 |
assets | 按路由或视图加载插件自己的 CSS、JavaScript 和 ES Module。 |
settings | 生成插件设置表单并隔离保存配置。 |
插件目录结构
plugin-dev/lighthouse-commerce/
├── plugin.json
├── src/
│ └── Plugin.php
├── assets/
├── views/
└── migrations/Manifest 至少声明 Schema 版本、插件 ID、名称、供应商、语义化版本、环境要求和 PSR-4 自动加载。插件 ID 仅使用小写字母、数字和中间连字符。
插件 CLI
php shopagg plugin:make lighthouse-commerce
php shopagg plugin:validate plugin-dev/lighthouse-commerce
php shopagg plugin:test plugin-dev/lighthouse-commerce
php shopagg plugin:pack plugin-dev/lighthouse-commerce
php shopagg plugin:install lighthouse-commerce.zip
php shopagg plugin:enable lighthouse-commerce
php shopagg plugin:jobs 20安全边界
- 所有管理路由继续执行管理员认证和 CSRF 校验;插件权限使用动态 Staff 权限。
- 插件数据表使用插件命名空间,并通过插件迁移管理版本。
- 插件设置、Session、日志、静态资源和 HTTP 调用由运行时提供隔离封装。
- 卸载默认保留数据;版本切换不会反向删除数据库迁移。
- 路由、文件路径、依赖、冲突和环境要求会在安装或启用前校验。
服务契约
核心当前提供 14 类插件契约,包括购物车、订单、支付、退款、会员、积分、通知、表单类型、数据采集、导入导出和文件转换。插件之间应通过服务注册表协作,避免直接依赖对方内部类。