我在Kohana PHP框架中看到了钩子,它们可以作为某种事件触发的某种回调函数(Kohana的事件,即某种方法重载)。
我在Wordpress中看过钩子,我不知道它们是什么或者如何使用它们(昨天刚看到它们)。
我正在寻找“非框架”php中的事件,我找不到。
钩子只能在“基于事件”的环境中工作吗?无论如何它们(一般来说,不只是在PHP中)?如果不是在“基于事件的”环境中,它们有什么用处。
答案 0 :(得分:3)
正如其他人所提到的,PHP是无状态的,所以在我使用它们的地方,我将它们用作一个简单的执行列表,并将我的应用程序的每个部分都挂在其中。这种方式我是非常可扩展的,并且还有一个插件堆栈的基础。 (当我感到无聊或退休或者手上有太多时间等等时,我会释放它一个神奇的日子。)
你会发现类似的堆栈和钩子,例如,WordPress,所以一个处理CSS的插件会将自己挂钩到CSS_DEFINITION_EVENT(基本上,是将CSS内容写入的WordPress应用程序的那部分) HTML部分)。这东西无处不在。在PHP中,它只适用于(大多数情况下)每个PHP页面获得的请求限制(除非您在Web服务器外部执行PHP),但所有主要操作系统,应用程序,框架和系统都具有某种形式的事件堆栈。 PHP只是没有(严重)内置。
答案 1 :(得分:1)
PHP是无状态的,因此它不能真正拥有事件。它们通过手动添加和存储事件侦听器(要调用的函数)进行模拟,然后在代码中发生某些事件时显式调用所述侦听器。就像上传了新图片或发生了404错误一样。
答案 2 :(得分:0)