企业🤖AI智能体构建引擎,智能编排和调试,一键部署,支持私有化部署方案 广告
> #### 钩子 可以理解为设计模式中的观察者模式 , 亦或者是函数式编程中的异步事件。 > 钩子的实现需要两个步骤 : > 一是 定义触发事件或称之为**监听** , > 二是事件发生时需要做的事情或称之为**行为**,这两个一起才能实现一个钩子。 > 在观察者设计模式中 , 当程序走到这时 , 执行我们事先已经准备好的方法。 > 使用hook将关系不紧密的业务逻辑进行分离 , 或者是把一些使用比较频繁密集的操作用hook进行同一分发 , 即做到了同一管理 、方便后期维护与更新 ,而且实现了代码的高度复用 , AOP思想的最佳实践。 **实现方式:** 1、定义行为 , 由于一个事件可能不止一个行为会有多个 , 我们给他们用一个标签将这一些行为集合在一起 ``` return [ // 记录异常日志 'log_report'=>array('Core\Initializer\Behavior\LogBehavior'),  ]; ``` 2、放置监听 , 在标签对应的行为被导入之后 , 我们就可以在任意一个位置放置一个监听程序。 ``` \Think\Hook::listen('mytag1'); ```