如何使用 xdebug 调试 PHP CLI 脚本?

2022-08-30 16:02:06

我还没有完全弄清楚这一点。我找到的每一个文档都涵盖了如何使用xdebug调试在Apache中运行的脚本。我需要调试一个php CLI脚本。

那么,例如,我如何传递XDEBUG_SESSION_START变量来启动xdebug?

我专门尝试调试一个CakePHP shell。因此,如果有人对此有任何额外的见解,我将不胜感激。

谢谢。


答案 1

Xdebug的手册中有一些关于此的注释,例如(引用):

export XDEBUG_CONFIG="idekey=session_name"
php myscript.php

如果您使用Eclipse PDT来开发和调试PHP脚本,Apache或CLI之间没有太大区别:配置lloks完全相同,您只需要配置Web服务器,也不必指示URL ;相反,您必须指示PHP可执行文件的路径。

关于变量:好吧,你在“调试模式”下启动整个脚本,所以你没有任何“调试会话”的概念,我会说。XDEBUG_SESSION_START


例如,以下是我现在的样子,在右侧,单击第一个按钮时我得到的:Window > Preference > PHP > PHP executablesEdit


(资料来源:pascal-martin.fr

(资料来源:pascal-martin.fr

和窗口 :debug configurations


(资料来源:pascal-martin.fr

并启动调试:它只是工作:


(资料来源:pascal-martin.fr


希望这有帮助:-)

否则,您会遇到什么具体问题?


答案 2

如果你使用的是 bash(或类似的 shell),这个小脚本可能会派上用场:

alias drush-debug=drd
function drd {
    export XDEBUG_CONFIG="idekey=cli_session"
    export SERVER_NAME="developer.machine"
    export SERVER_PORT="9000"
    drush "$@"
    unset XDEBUG_CONFIG
    unset SERVER_NAME
    unset SERVER_PORT
};

或按照以下评论员的建议

alias drd='XDEBUG_CONFIG="idekey=PHPSTORM" drush "$@"'

这样,就不必在每次要调试时手动设置和取消设置触发器变量。


推荐