php - Hook 到脚本的运行时

标签 php c++ c php-extension

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

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

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

  1. auto_prepend_file/auto_append_file
  2. 使用extension这让我可以 Hook 到函数的(开头)。

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

最佳答案

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

它可能以某种方式用你自己的函数替换一个函数(我刚才在某处读到你可以替换 zend 引擎的解析、编译等函数)。

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

关于php - Hook 到脚本的运行时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14996938/

相关文章:

PHP关联数组重复键

php - 在页面之间来回发送 PHP 变量

javascript - 单击一次“阅读更多”按钮将不起作用,但多次单击将不起作用

c++ - 插入函数不断重新创建根节点

C++错误初始化派生类成员初始化列表中的基类数据成员

c++ - gluProject 和 glhProject 之间有什么区别?

c - C语言对链表进行两次排序

php - 具有 LRU 过期的内存缓存

c - 回车后执行会跳过循环中的 getchar() 和 putchar()?

c - 使用 IEEE 浮点优化 - 保证数学恒等式?