>  기사  >  백엔드 개발  >  到底啥是钩子,他的作用是啥

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

WBOY
WBOY원래의
2016-06-23 13:34:041747검색

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


回复讨论(解决方案)

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

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

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

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


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

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

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

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

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.