下午好。
当尝试在 PHP 8 上调试脚本时,PhpStorm 报告与版本 3 xdebug 没有连接。适用于 3 以下的所有版本。我尝试将 xdebug.remote_{host, port} 的参数更改为 xdebug.client_{host, port} 但也没有帮助。
Xdebug 3 将仅在 PhpStorm 2020.3版本中得到全面支持,该版本目前处于 EAP 阶段(Early Access Program),将在大约 1 个月的时间内发布。
最新的EAP #6版本已经支持它:查看此博客文章了解更多信息:https ://blog.jetbrains.com/phpstorm/2020/11/phpstorm-2020-3-eap-6/
我已经在 Windows 10 上为我的 PHP 7.4 下载了 Xdebug 3.0.0beta1,从头开始配置它(使用正确的 Xdebug 3 配置值:https ://3.xdebug.org/docs/upgrade_guide和https://3.xdebug.org /docs/all_settings ) ...它在 PhpStorm 2020.2.3 中仍然可以正常工作。
是的,IDE 在启动 CLI 脚本(如等)调试时会发送旧式参数,xdebug.remote_{host, port}
但调试仍然可以正常工作。
这是我的 Xdebug 3 设置的 php.ini 内容(就这么简单):
[xdebug]
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9001
xdebug.mode = debug
(我有更多设置,但这些是针对输出文件名、日志位置、在某些情况下/需要时快速打开某些选项等的额外内容的自定义——这里不需要这些,没有它们也可以正常工作)
从 IDE 启动的 CLI 调试(“PHP 脚本”类型的配置):
这就是 IDE 正在执行的操作:E:\Projects\php\php74\php.exe -dxdebug.remote_enable=1 -dxdebug.remote_mode=req -dxdebug.remote_port=9001 -dxdebug.remote_host=127.0.0.1 E:\Projects\web\_idetest\test.php
. 正如您所见,这些旧式参数根本不会影响 Xdebug 3。
PS 如果我xdebug.start_with_request = yes
在 php.ini 中设置,那么即使在运行(或在 IDE 之外执行该 PHP 脚本时)也可以进行调试——只要“电话句柄”图标为绿色(IDE 侦听传入的调试请求)。