XDebug提供了配置指令XDebug。profiler_enable_trigger允许在通过HTTP调用脚本时通过传递GET或POST参数“XDEBUG_PROFILE”来激活分析。如果您不想对所有脚本进行概要分析,而只是在不总是更改PHP配置的情况下对少数特殊情况进行概要分析,那么这种方法非常方便。

是否有一种方法可以在PHP命令行程序中实现相同的行为?我试图将XDEBUG_PROFILE作为命令行参数传递,但它不起作用。

一般来说,分析命令行PHP工作得很好,但我希望具有与浏览器和HTTP服务器相同的每次调用的灵活性。


当前回答

在VM上开发时,让它与Netbeans一起工作的过程类似,但不同。

需要传入远程启用标志、自动启动标志、ide标志和远程主机的名称。

php -dxdebug.remote_enable=1 -dxdebug.remote_autostart=On -dxdebug.idekey=netbeans-xdebug -dxdebug.remote_host=NAME.OF.HOST script.php

其他回答

你可以通过-d标志传递INI设置:php -d xdebug。profiler_enable script.php =。

欢迎来到xdebug 3!

现在是:

xdebug.mode=profile

因此:

php -d xdebug.mode=profile script.php

在VM上开发时,让它与Netbeans一起工作的过程类似,但不同。

需要传入远程启用标志、自动启动标志、ide标志和远程主机的名称。

php -dxdebug.remote_enable=1 -dxdebug.remote_autostart=On -dxdebug.idekey=netbeans-xdebug -dxdebug.remote_host=NAME.OF.HOST script.php

我创建了一个shell脚本来处理客户端调试。

脚本名称:phpdebug

#!/usr/bin/ksh
php -dxdebug.remote_host=`echo $SSH_CLIENT | cut -d "=" -f 2 | awk '{print $1}'` $*

我把这个脚本放在/usr/bin中,并赋予它执行权限。

该脚本接受传入phpdebug的参数,并使用xdebug参数调用php,并将传入的参数附加到shell脚本中,$*位于最后。

对于Xdebug 3

现在,使用XDEBUG_MODE环境变量可以很容易地为单个脚本启用Xdebug:

XDEBUG_MODE=profile php script_to_be_profiled.php