Depurar código PHP con Visual Studio Code

Uso Visual Studio Code para desarrollar en cualquier lenguaje. En primer lugar porque es mucho más ligero que un IDE tradicional y lo segundo porque tiene infinidad de plugins que puedes ir instalando según tus necesidades vayan evolucionando. En este post quiero contarte cómo configurarlo para poder depurar código en PHP, ya que me ha costado un poco encontrar información al respecto que cuente todo el proceso.

Antes de configurar Visual Studio Code, asegúrate de tener instalado PHP en tu sistema y tenerlo registrado en el PATH de Windows. También necesitarás XDebug para el que tendrás que descargar un binario u otro, dependiendo de la versión de PHP que tengas instalada. La forma más sencilla de saber cuál es la configuración que necesitas para tu entorno es utilizar la página https://xdebug.org/wizard.php donde puedes pegar el código HTML de la configuración que te devuelve php_info() y te ayudará a saber qué librería de XDebug debes descargar y cómo tienes que configurarla en tu archivo php.ini:

XDebug Wizard

Copia la dll en la carpeta ext de la carpeta donde tengas alojado PHP y añade las siguientes lineas al archivo php.ini

[XDebug]
zend_extension = "C:\tools\php-7.2.11-nts-Win32-VC15-x64\ext\php_xdebug-2.6.1-7.2-vc15-nts-x86_64.dll"
xdebug.remote_enable = 1
xdebug.remote_log="c:\tmp\xdebug\xdebug.log"
xdebug.idekey="vscode"
xdebug.remote_autostart = 1

Configuración de VS Code

En la sección de Extensiones de Visual Studio Code busca por PHP e instala PHP Debug PHP Intellisense para tener la mejor experiencia con este lenguaje.

Visual Studio Code – Extensions – PHP Debug & PHP IntelliSense

Una vez instaladas las extensiones, el siguiente paso es configurar la sección Debug. Abre un proyecto de PHP con Visual Studio Code y selecciona dentro del apartado Debug el botón de configuración. Elige PHP en el combo que aparece.

Visual Studio Code – Configuration – PHP

En este momento se nos generará una nueva carpeta en nuestro proyecto llamada .vscode y dentro de ella un archivo llamado launch.json con la configuración del modo depuración. En mi caso he dejado la configuración tal cual está:

{
    // Use IntelliSense to learn about possible attributes.
    // Hover to view descriptions of existing attributes.
    // For more information, visit: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [        
        {
            "name": "Listen for XDebug",
            "type": "php",
            "request": "launch",
            "port": 9000
        },
        {
            "name": "Launch currently open script",
            "type": "php",
            "request": "launch",
            "program": "${file}",
            "cwd": "${fileDirname}",
            "port": 9000
        }
    ]
}

Ejecuta tu proyecto, en mi caso estoy utilizando php -S 127.0.0.1:8000 -t public, y también pulsa F5 para lanzar el listener de XDebug. Abre tu sitio en el navegador, añade algún breakpoint en tu código y verás que podrás comenzar a depurar en Visual Studio Code tu aplicación en PHP.

Depurando PHP en Visual Studio Code

¡Saludos!