如何在VSCode 搭配XDebug 侦错PHP程序

Xdebug 3 已经正式释出, 不仅在效能上提升, 在设定上也变得简单许多。

今天来介绍如何在VSCode 上使用XDebug 来侦错PHP 程序。

环境

  • Windows 10

  • VSCode v1.52.0

  • PHP v7.4.12

  • XDebug v3.0.0

PHP 在本机上的环境变数设定,自行百度。

PHP 加上Xdebug

下载PHP XDebug,请务必下载对应PHP 的版本

php.ini设定档需加上XDebug 的设定来开启debug 模式

zend_extension 请设定您的PHP XDebug 的档案位置

[xdebug]
zend_extension="D:\_devlibphpxdebugphp_xdebug-3.0.0-7.4-vc15-x86_64.dll"xdebug.mode=debug
xdebug.start_with_request=yes

; xdebug 3 版 port 預設為 9003, 若想維持與 2 版一樣的 9000 port 則可變更 client_port 的值
;xdebug.client_port = 9000

XDebug v3 的设定是不是精简许多?

确认PHP 是否正确挂载XDebug 的extension

$ php -v

显示应会如下(必须出现with Xdebug …)

PHP 7.4.12 (cli) (built: Oct 27 2020 17:18:47) ( ZTS Visual C++ 2017 x64 )Copyright (c) The PHP GroupZend Engine v3.4.0, Copyright (c) Zend Technologies
    with Xdebug v3.0.0, Copyright (c) 2002-2020, by Derick Rethans

安装VSCode 的PHP Debug 套件

或者是安装PHP Productive Pack套件包增加生产力

VSCode 的侦错设定

在VSCode 开启PHP 专案,点”执行” 选择”新增组态”,选择”PHP”

即会自动产生对应程式语言的侦错设定档.vscode/launch.json

由于目前使用XDebug 的版本是v3.0.0,预设的port 要改成 9003 才行

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9003
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9003
        }
    ]
}

执行侦错

下图为一个简单的PHP 档案,前面有红点为指定侦错的中断点

  1. 先在程式加上侦错中断点

  2. 执行侦错

  • Listen for XDebug (侦错监听中,需在终端机或网站执行到此行程式才会触发侦错)

  • Lunch currently open script (即会在focus 的PHP 程式启动侦错)

  1. 侦错步骤(继续/不进入函式/逐步执行/跳离函式/重新启动/停止)

在侦错的面板上即可看到侦错的讯息

例如此例在程式跳到第5 行时, $x 的变数值为”VSCode + PHP Debug mode!”

侦错PHP 就是这么简单!


2023-06-13 20:40:36