1

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

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

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

  1. auto_prepend_file / auto_append_file
  2. 使用可以让我挂钩(开始)功能的扩展。

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

4

1 回答 1

0

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

以某种方式可以用您自己的函数替换一个函数(我前段时间在某处读过,您可以替换 zend 引擎的函数以进行解析、编译等)。

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

于 2013-03-13T14:55:23.817 回答