我有一个脚本,其中包含很多嵌套的包含和函数,它们可以在很多条件下相互调用。基本上,它是编码的噩梦。
有什么办法可以“打印”执行的PHP代码吗?我的意思是,打印代码的实际流程和脚本从头到尾的路径?
答案 0 :(得分:2)
您可以尝试debug_backtrace()或debug_print_backtrace()。
此外,我建议使用 Xdebug 。它会在异常上打印一个非常有用的堆栈跟踪(您可以将其配置为打印出每个方法参数和每个局部变量(xdebug.collect_params=4
和xdebug.show_local_vars=on
配置参数)。
答案 1 :(得分:2)
PHP无法开箱即用。您需要在PHP开发机器上安装the xDebug extension。安装后,您可以使用the code coverage function来确定已执行的行。
缺乏这一点,我创建了一个简单的调试功能,以包含在代码的顶部
public function myDebugString($string)
{
file_put_contents('/tmp/debug.log',"$string\n",FILE_APPEND);
return;
}
然后在整个代码中添加对此的调用
myDebugString('Called at ' . __LINE__);
然后拖尾创建的日志文件。完成后,删除调试语句是编辑器的简单查找/替换操作。
许多框架都有调试对象,这些调试对象的构建方式比构建它更多,但是如果你处理独立代码,那么像这样的简单代码应该足以让你通过。
答案 2 :(得分:0)
查看code coverage工具。这允许您识别脚本运行时实际执行的那些函数和代码行