PHP:在每个文件的开头和结尾调用一个函数

标签 php debugging

我想在每个文件的开头和结尾自动调用用户定义的函数。这将包括被请求的脚本以及该脚本中的每个 include。

这样做的目的是创建一个调试工具,记录每个文件执行所花费的时间。将存储每个文件开始和结束的微时间,以在脚本执行结束时报告结果。

[编辑] 我花了一些时间查看 xhprof 和 xdebug

Xdebug 无法工作,因为我无法在运行时打开和关闭它(我们当前的调试系统允许我们在 URL 中传递一个属性,它作为 session 变量打开/关闭调试,最终在底部显示分析数据加载后的页面 - 这非常有用)

Xhprof 更接近,尽管它不允许我分解每个函数调用,也不允许传递附加调试信息以附加到分析元素。例如,我有一个用于所有查询的 mysql 查询用户定义函数 - 我想将实际查询传递给配置文件元素,以便我可以在页面中识别较重和较轻的查询(我知道我可以记录查询同样,只是想展示我如何从这个要求中受益)。另一个示例是将传入、传出函数数据和我想跟踪的任何其他调试信息附加到配置文件元素。

目前,我手动跟踪开始时间、结束时间和其他调试信息,方法是在将数据发送到通用函数的每个函数中放置代码行,将其保存在全局变量中,并在脚本输出后将其作为调试数据吐出。我将其扩展到脚本、模板等。我希望避免在每个函数、脚本、模板中手动输入数据。我希望它需要为每个函数独有的一些数据完成,但是重复的东西(开始、结束时间)不应该在每个令人讨厌的查询中输入大声笑。

最佳答案

我强烈建议您查看 Xdebug而是帮助您调试代码。自己动手只会让你抓狂!

Xdebug 可以做到function traces开箱即用等等。

例如:

// start tracing function calls to file
xdebug_start_trace('/path/to/trace_file.txt');
// your code here
xdebug_stop_trace();

关于PHP:在每个文件的开头和结尾调用一个函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13902363/

相关文章:

debugging - 如何在GDB中查看文件的完整路径?

multithreading - 调试 Delphi 多线程应用程序 - 如何获得消耗 100% CPU 的应用程序

python - Python 中的 BDB 有什么用?

php - 在 Codeigniter URL 段中传递 URL

php - MySQL-Docker:连接问题

php - HTML5 输入时间从 24 小时到 12 小时

Eclipse 无法识别我的 Android 设备

php - 添加计数到 jQuery 在 PHP foreach 中添加的行

php - 如何获取最后一个自动增量值作为php中另一个表的外键

Java调试问题