插件如何注册生命周期钩子?如何挂载自己的页面路由与伪静态规则?如何暴露 REST API?本文用最小可运行示例串起插件开发的完整链路。
AidoSaaS-CMS 的插件系统遵循「扩展点优先、内核零改动」原则:插件通过钩子注入行为,通过路由注册入口挂载自己的页面与 API,全程不碰内核源码。
钩子:行为注入
插件用 add_filter() / add_action() 挂载到内核暴露的扩展点。例如通过 aidocms_csp 过滤器向 CSP 响应头追加自己域名的资源,通过 aidocms_admin_nav 向后台导航添加菜单项。
路由:挂载自己的页面
内核开放了路由注册入口、重写引擎的 public 静态方法,以及一个路由初始化钩子。插件在初始化阶段调用这些接口,即可拥有自己的页面 URL 与伪静态规则,和核心路由平级派发。


REST:对外暴露 API
插件可声明 REST 控制器,把业务能力以 JSON 接口对外提供(鉴权、限流、跨站校验由内核统一兜底)。这让「CMS + 插件」可以平滑演化为一个小型应用平台。
最小插件骨架
// my-plugin/bootstrap.php
add_action('aidocms_init', function () {
// 注册路由 / 钩子 / REST
});扩展纪律
- 不修改
src/内核文件,所有扩展走钩子与路由入口; - 第三方项字段不可信,读取时一律
?? []/?? ''兜底; - 若插件引入配置,确保配置项在前台被真实消费。
常见问题
插件能注册自己的 URL 吗?
可以。内核开放了路由注册入口与重写引擎的 public 静态方法,插件在初始化钩子里注册即可。
插件会影响安全头吗?
通过 aidocms_csp 过滤器追加自己的域名即可,无需改动内核文件。



评论 (0)
还没有评论,来抢沙发吧。