怎么开发自己的插件?钩子和后台路由要怎么挂?

已解决 提问于 2026-10-25 提问者:超级管理员 24 次阅读

想给站点加一个自己的小功能,插件最小要写哪些文件?钩子、后台菜单、路由分别怎么注册?

回答(1)

已采纳最佳答案
  • 2026-10-25 回答 最佳答案

    最小结构(plugin/你的插件/):

    • plugin.json:名称、版本、说明、autoload 命名空间映射、config_fields(后台配置项);
    • plugin.php:注册钩子、路由、菜单;
    • src/:业务类。

    注册钩子:

    $plugin->hook('content_detail', 'Plugin\\Demo\\Hooks@onContentDetail', 10);

    后台路由必须写在 $plugin->route() 回调里,并显式挂 AdminAuth 中间件(不挂就是未授权访问):

    $plugin->route(function ($router) {
        $router->group(array(
            'prefix'     => 'admin',
            'middleware' => array('App\\Middleware\\AdminAuth'),
        ), function ($router) {
            $router->get('/plugin/demo', 'Plugin\\Demo\\AdminController@index');
        });
    }, 60);

    五条纪律:

    1. 插件不改动核心文件,只用钩子;
    2. 后台路由一律带鉴权;
    3. 写操作必须过 CSRF(表单带 {$csrf});
    4. 富文本入库走统一入口,不自己拼 SQL;
    5. 别回显异常 $e->getMessage() 给前端。

    改完执行 php aucms cache:rebuild;自己写 CLI 脚本时记得 \plugin()->boot(),否则钩子不注册,功能静默失效。

写回答

该问题已解决,不再接受新的采纳。