经常听说php钩子,但是一直没明白钩子使用场景,麻烦各位发表下自己的使用心得,我想学习学习
钩子,我们在日常生活中可以挂东西上面,方便拆卸。
代码中其实也是一样,在程序运行过程代码中每一个阶段,我们插入一个钩子函数。函数中并不包含具体的执行逻辑。在后期需要调用的时候 传入具体的执行对象。在代码程序执行到那边的时候就会触发钩子函数。
之前看tp源码的时候,里面的事务概念就是钩子。题主可以看看。
钩子(Hook)实际上是一个处理消息的程序段,通过系统调用,把它挂入系统。每当特定的消息发出,在没有到达目的窗口前,钩子程序就先捕获该消息,亦即钩子函数先得到控制权。这时钩子函数即可以加工处理(改变)该消息,也可以不作处理而继续传递该消息,还可以强制结束消息的传递。
-- 以上是搜的概念
实际上钩子可以理解为“事件驱动”,当特定的事件到来的时候钩子函数接管处理,也就是说提前注册一些事件(称为钩子的挂载),当程序执行到挂载点的时候会按注册的规则来执行。
钩子,其实就是一个挂载点,简单点说就是为了开发扩展。
比如:wordpress
发布一条文章后,会有挂载点,我们可以写任意的代码,挂到这个点,当我们发布文章的时候,就会自动加载这些代码。
比如我们写一个提交链接到百度的代码,并用wordpress自带的钩子,挂载到发布文章这里;这样我们每次发布文章的时候,就会自动提交链接给百度。
1 回答4.1k 阅读✓ 已解决
3 回答1.8k 阅读✓ 已解决
2 回答2.2k 阅读✓ 已解决
1 回答1.4k 阅读✓ 已解决
2 回答2.2k 阅读
1 回答585 阅读✓ 已解决
791 阅读
拉一个最直接的实例!!