【发布时间】:2012-12-25 02:00:56
【问题描述】:
我有一个脚本,其中包含许多嵌套包含和函数,它们从许多 if 条件中相互调用。基本上,这是一场编码噩梦。
有什么方法可以“打印”执行的 PHP 代码吗?我的意思是,打印代码的实际流程和脚本从头到尾的路径?
【问题讨论】:
我有一个脚本,其中包含许多嵌套包含和函数,它们从许多 if 条件中相互调用。基本上,这是一场编码噩梦。
有什么方法可以“打印”执行的 PHP 代码吗?我的意思是,打印代码的实际流程和脚本从头到尾的路径?
【问题讨论】:
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__);
然后tail创建的日志文件。完成后,删除调试语句对您的编辑器来说是一个简单的查找/替换操作。
许多框架的调试对象远不止构建它,但如果您正在处理独立代码,像这样简单的东西应该足以让您通过。
【讨论】:
你可以试试debug_backtrace() 或debug_print_backtrace()。
另外,我建议使用 Xdebug。它会在异常上打印一个非常有用的堆栈跟踪(您可以将其配置为打印出每个方法参数和每个局部变量(xdebug.collect_params=4 和xdebug.show_local_vars=on 配置参数)。
【讨论】:
看看code coverage 工具。这使您可以识别脚本运行时实际执行的那些函数和代码行
【讨论】: