每个插件钩子文件必须继承公共的插件控制器app\common\controller\Plugins,插件里面必须要有以下四个方法:

    1. <?php
    2. namespace plugins\aaa;
    3. use app\common\controller\Plugins;
    4. class aaa extends Plugins
    5. {
    6. /**
    7. * @var array 插件钩子清单
    8. */
    9. public $hooks = [
    10. // 钩子名称 => 钩子说明【系统钩子,说明不用填写】
    11. 'system_admin_tips',
    12. ];
    13. /**
    14. * system_admin_tips钩子方法 ,驼峰命名
    15. * @param $params
    16. */
    17. public function systemAdminTips($params)
    18. {
    19. echo '这是插件[aaa]的示例![我在这儿:/plugins/aaa/aaa.php]<br>';
    20. }
    21. /**
    22. * 安装前的业务处理,可在此方法实现,默认返回true
    23. * @return bool
    24. */
    25. public function install()
    26. {
    27. // 在此写业务代码,没有可不写
    28. return true;
    29. }
    30. /**
    31. * 安装后的业务处理,可在此方法实现,默认返回true
    32. * @return bool
    33. */
    34. public function installAfter()
    35. {
    36. // 在此写业务代码,没有可不写
    37. return true;
    38. }
    39. /**
    40. * 卸载前的业务处理,可在此方法实现,默认返回true
    41. * @return bool
    42. */
    43. public function uninstall()
    44. {
    45. // 在此写业务代码,没有可不写
    46. return true;
    47. }
    48. /**
    49. * 卸载后的业务处理,可在此方法实现,默认返回true
    50. * @return bool
    51. */
    52. public function uninstallAfter()
    53. {
    54. // 在此写业务代码,没有可不写
    55. return true;
    56. }
    57. }

    调用:

    模板调用 {:runhook(‘system_admin_tips’)}

    php文件调用 runhook(‘example_hook’)

    带参数调用 runhook(‘example_hook’, [‘param1’=> ‘参数1’, ‘param2’=> ‘参数2’])