目录结构
2026/10/26大约 1 分钟
插件目录结构
后端插件放在 am-serve/plugin/{name}/,每个插件是一个自包含目录。
标准骨架
am-serve/plugin/{name}/
├── manifest.json # 清单(唯一元数据来源)
├── Plugin.php # 生命周期 Hook,继承 app\basic\BasePlugin
├── install.sql # 建表脚本(表名须以 {name}_ 前缀)
├── app/
│ ├── controller/ # 控制器(注解路由,前缀 /app/{name})
│ ├── model/ # 模型,继承 BaseModel
│ ├── service/ # 业务服务
│ ├── validate/ # 校验器,继承 BaseValidate
│ └── view/ # 服务端渲染视图(entry / manage 入口 html)
├── config/
│ ├── app.php
│ ├── route.php # 手动注册的页面入口路由
│ ├── event.php # 事件订阅(可选,格式同基座)
│ └── view.php
└── public/ # 前端构建产物 + logo + widget 组件命名规则
- 插件标识以
am_开头。辅助函数normalizePluginName()会在缺前缀时自动补am_。 - 标识需满足:不占用保留名、达到最小长度、全局唯一。
- 插件自有数据表统一以
{name}_前缀(如am_todo_list),便于卸载按前缀物理清理。BasePlugin::table()提供拼名 helper。
后端骨架从哪来
后端骨架(manifest / Plugin.php / config / 控制器 / 视图)由基座后台的"创建 / 重新生成自定义插件"生成,模板真源在 am-serve/stub/plugin/*.stub。前端框架不由它生成,见脚手架工具。
依赖
插件可声明:
dependencies:依赖的其它插件(安装时校验)。composer.require:插件自有 Composer 依赖,可一键合并进基座根vendor(受config/plugin_extend.php的composer_enabled开关控制,安全敏感,生产谨慎开启)。
