AI写作智能体 自主规划任务,支持联网查询和网页读取,多模态高效创作各类分析报告、商业计划、营销方案、教学内容等。 广告
钩子分为 【绑定/注册】和【监听】 ## **1、通过tags.php文件注册钩子** 首先在项目中创建一个行为文件夹: ### **1、behavior 文件夹,创建Test.php 行为文件** ![](https://img.kancloud.cn/5d/10/5d1045e910803affdf6f7a7cfd320248_366x188.png) Test.php文件中默认的行为入口方法为run: ![](https://img.kancloud.cn/45/12/4512968586ae30d64343e618a6f76fae_643x436.png) 行为的入口方法名称支持自定义,如果需要更改在应用公共文件中添加下面的代码即可: ``` \think\facade\Hook::portal('portal'); ``` 入口方法名称就变成了portal而不是默认的run了。 ### **2、在控制器Index.php中调用钩子:** 调用的方式有如下几种: 1)、我们将钩子和行为进行绑定,通过tags.php文件:这里我将zkd\_login的钩子绑定到了test行为中; ![](https://img.kancloud.cn/08/07/08073b106b0ced46f92e86daf0824b3a_536x474.png) 在Index.php的控制器中直接监听钩子: ![](https://img.kancloud.cn/68/87/688708a37b916f580a806874b1d6d7bf_518x519.png) 访问index方法,页面显示:我是一个钩子; ## **2、不通过tags.php文件注册钩子** ![](https://img.kancloud.cn/43/79/437911d1caedb4d41dc5609e44d2cd9a_554x561.png) 访问index方法,页面显示:我是一个钩子; 也可以实例化Hook对象进行调用: ![](https://img.kancloud.cn/bc/9f/bc9fe846bc44a4f442d8af331b8406e4_718x563.png) ## **举例说明:** 如果当前注册模块已经开发完成,现在临时需要增加添加日志功能: 方法1:直接在注册方法的最后面写记录日志功能的代码: ![](https://img.kancloud.cn/24/0e/240e8c097c995dcc2a85781e1f452046_413x337.png) 方法2:通过钩子和行为方式实现: ![](https://img.kancloud.cn/82/74/8274698770eef2d8f86d14a31089238a_445x273.png) 记录日志操作在add\_log指向的行为中进行实现。 方法3: ![](https://img.kancloud.cn/72/21/7221f4465fe3020d5487dc4de10d60cf_519x310.png)