使用XDebug和PHPStorm调试Symfony2控制台命令

22

如何配置PHPStorm,以便在运行控制台命令时使用XDebug跟踪我的代码?

我知道我的调试配置是正确的,因为我可以调试Web请求并跟踪代码。只要像这样设置环境变量,我也可以跟踪常规的php命令行脚本:

export XDEBUG_CONFIG="idekey=my-xdebug"

然而,我无法追踪/调试Symfony2控制台命令(那些使用app/console bundle:console_command运行的命令)。 PhpStorm可以看到连接,但似乎无法定位正在运行的代码。 我知道我的文件映射是正确的,因为Web请求可以完美地工作。

这可能吗?


1
启用来自xdebug的日志记录,并查看它正在运行的文件...然后检查您的映射是否正确。 - LazyOne
3个回答

26

您应该提供SERVER_NAMESERVER_PORT。此外,您还应该启用xdebug.remote_autostart。请尝试以下操作:

SERVER_PORT=<Your port> SERVER_NAME='<Your server> php \
    -dxdebug.remote_autostart=On app/console test

23
php -dxdebug.remote_autostart=On app/console my:cmd 可以使用。谢谢。 - tom10271
2
谢谢,它完美地工作了,你应该将其标记为正确答案 ;) - Saad Achemlal
@tom10271 你是真正的MVP。 - Adrien G
3
顺便提一下,现代版本是 php -dxdebug.start_with_request=yes bin/console my:cmd - Christian

7

请确保您已经在php.ini CLI版本中启用了xdebug,而不仅仅是apache/cgi php.ini。

[XDebug]
xdebug.remote_enable = 1
xdebug.remote_host = 127.0.0.1
xdebug.remote_port = 9000
xdebug.idekey = PHPSTORM

3
你还应该添加 xdebug.remote_autostart = 1 并确保在IDE的调试配置中映射正确。 - Greg Berger

1
我建议尝试以下BASH助手命令:https://github.com/torinaki/phpdebug-cli phpdebug 大多数情况下会自动检测所有必需的配置,您不需要提供环境变量。
只需运行:
phpdebug app/console bundle:console_command

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接