欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  后端开发

到底啥是钩子,他的作用是啥

程序员文章站 2022-05-14 09:58:26
...
大家知道几乎所有的php视频讲座,包括书籍,根本没有提到钩子的概念,但是发现实际做项目的时候却经常用到,所以有时感觉教学的实践的脱节一直是中国人最大的毛病,没用的讲的和滔滔江水,连延不断,而用到的只字不提。
牢骚过后还要正视严峻的现实,那么问题来了,到底啥是钩子呢


回复讨论(解决方案)

hook 钩子,一组钩子就是 hooks 了

hooks 是微软操作系统挂载用户功能的一种称谓
在 php 中称为 callable 可调用结构和 callback 回调函数
这个在教程里应该是有讲授的

hook 钩子,一组钩子就是 hooks 了

hooks 是微软操作系统挂载用户功能的一种称谓
在 php 中称为 callable 可调用结构和 callback 回调函数
这个在教程里应该是有讲授的


能不能别用概念解释概念呢,最好说的通俗点,本来我就不明白这个概念,你再用这个概念解释听着发晕

简单的说,钩子就是程序。这些程序可以在特定的时间被调用。
你既然用CI框架,那么应该知道,在框架初始化的过程中,有一些特殊的时间点,比如
(1)、框架初始化之前的时间点。
(2)、控制器初始化之前的时间点
(3)、控制器运行之后的时间点
当然还有其他的时间点。
在每一个时间点,你都可以埋下一些钩子(可以是一段程序,或者一个函数)。框架中都会有一个专门处理钩子的类库(比如CI中的hooks.php),这个Hook类就会在程序运行的特定点检查是不是有特定的钩子,如果有钩子,就执行这个钩子。

说了这么多,可能还是有点抽象。打个比方:
你下班回家的整个流程看做是框架的执行流程,正常情况下,你下班直接走回家就可以。如果你老妈给你打电话说,如果你路过邮局,刚好有咱家的快递,带回家,这个过程,就比较类似钩子(检查钩子,如果有则执行之)。

如果你做过一些前端的工作,这个钩子就恰似“事件驱动”的模式。