钩入脚本的运行时

时间:2013-02-21 07:39:41

标签: php c++ c php-extension

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

  • 挂钩到运行时/获取我的扩展函数,以便在脚本执行开始/结束时调用
  • 在开始和结束时加入特定的函数,例如Pdo :: query()。

目的是给定时间给定函数或脚本,以便我们可以轻松计算执行时间等。我知道我可以在纯PHP中实现这一点:

  1. auto_prepend_file / auto_append_file
  2. 使用extension让我挂钩(函数的开头)。
  3. 但我最感兴趣的是C / C ++解决方案(在PHP / Zend API中)。也许甚至有更好的方式来做我想做的事情?

1 个答案:

答案 0 :(得分:0)

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

可能某种程度上可以用你自己的函数替换一个函数(我已经在某处读过你可以替换zend引擎的函数进行解析,编译等)。

ps:你可能也想看看xdebug,我很确定扩展会做一些时间/分析,你可以看看它是如何在那里完成的!