开发与安装应用
通过清单、页面契约和生命周期接口接入独立业务应用。
应用目录
text
addons/sample/
├── manifest.php # 标识、页面与菜单;不注册平台业务权限
├── route.php # 后台业务路由
├── public_route.php # 可选:应用自行鉴权的公共路由
├── controller/
├── model/
├── service/
├── view/
├── public/
└── database/install.sql最小清单
应用目录名与 key 一致,页面及接口由平台实施独立授权。示例代码仍需配套业务控制器与路由。
php
<?php
return [
'key' => 'sample',
'name' => '示例应用',
'version' => '1.0.0',
'entry' => '/admin/addons/sample',
'api_prefix' => 'sample',
'pages' => [
'records' => [
'title' => '记录管理',
'route' => '/admin/addons/sample',
'endpoints' => ['api/sample/records', 'api/sample/records/<id>'],
],
],
'menus' => [
['title' => '记录管理', 'route' => '/admin/addons/sample'],
],
];页面与接口契约
- pages 中的 key 是稳定页面标识,route 使用完整后台路径。
- endpoints 使用 admin 模块内相对路径,覆盖读取、保存、删除、下载和批量接口。
- <id> 仅匹配数字,其他命名参数仅匹配单一路径段;未声明的业务接口默认拒绝。
- shared_endpoints 可声明共用只读选项接口。任一获准页面可读取,但不能由此获得写权限。
生命周期
| 操作 | 数据与授权行为 |
|---|---|
| 安装 | 执行应用幂等 SQL,保存独立页面授权和安装状态。 |
| 重装 | 再次执行 SQL,未传新页面配置时保留原授权。 |
| 停用 / 启用 | 控制页面、接口及应用菜单的可用状态。 |
| 卸载 | 清除平台入口和角色授权,保留业务数据。 |