挂钩到脚本的运行时


Hook into runtime of scripts

我正在用PHP编写一个非常简单的定时器扩展,我想知道如何:

  • 挂入运行时/在脚本执行开始/结束时调用我的扩展的函数
  • 在开始和结束时挂接特定的函数,例如Pdo::query()

目的是给给定的函数或脚本计时,这样我们就可以很容易地计算执行时间等。我知道我可以用在纯PHP中实现这一点

  1. auto_prepend_file/auto_append_file
  2. 使用一个扩展,使我能够钩住函数(的开头)

但我最感兴趣的是C/C++解决方案(在PHP/Zendneneneba API中)。也许还有更好的方法来做我想做的事?

我确信php在扩展中没有函数挂钩!在扩展中唯一可以设置的挂钩是在apache(MINIT)中第一次加载扩展时,以及每次服务器(RINIT)收到请求时。

以某种方式,用自己的函数替换一个函数可能是可能的(我不久前在某个地方读到,您可以替换zend引擎的函数用于解析、编译等)。

ps:你可能还想看看xdebug,我很确定这个扩展可以进行一些定时/分析,你可以看看它是如何完成的!