Depurando PHP con Xdebug

Xdebug es una potente herramienta de depuración y creación de perfiles de PHP que nos ayuda a analizar y optimizar aplicaciones PHP. Admite funciones como la depuración paso a paso, la medición del rendimiento y el seguimiento de la pila, lo que facilita mucho la resolución de problemas y proporciona una mejor comprensión del código. A continuación se muestra una pequeña guía de configuración para usar dentro de VSCode.


Instalar Xdebug

Como ejemplo, instalamos Xdebug en un sistema Ubuntu actual.:

sudo apt-get install -y php8.4-xdebug

Finalmente, creamos un directorio temporal para el almacenamiento posterior de datos de perfil y seguimiento.:

mkdir -p /tmp/xdebug

Configurar Xdebug

Después de la instalación, configuramos Xdebug. Para ello lo editamos. es/php.ini:

vi /etc/php/8.4/fpm/conf.d/custom.ini

Lo que sigue es una configuración básica sensata.:

[xdebug]
; mode (see: https://xdebug.org/docs/all_settings#mode)
;   reasonable default
xdebug.mode=debug,profile
;   disabled
;xdebug.mode=off
;   step debugging
;xdebug.mode=debug
;   performance profiling (be aware of load/space)
;xdebug.mode=profile
;   trace profiling (record args)
;xdebug.mode=trace

; starting mode
;   always (not recommended)
;xdebug.start_with_request=yes
;   only when specific get parameters / cookies are set
;   (?XDEBUG_TRIGGER=1, ?XDEBUG_PROFILE=1, ?XDEBUG_TRACE=1, ?XDEBUG_SESSION=1)
;   this is best in conjunction with Chrome extension "Xdebug helper"
xdebug.start_with_request=trigger
;   folder for analyzing profile dumps
xdebug.output_dir="/tmp/xdebug"
;   not needed, since it is already in /etc/php/8.4/fpm/conf.d/20-xdebug.ini
;zend_extension=xdebug.so

Después de realizar estos ajustes, reiniciamos PHP-FPM para aplicar los cambios.:

sudo service php8.4-fpm restart

Configurar VSCode

Para usar Xdebug en Visual Studio Code, se requieren dos extensiones y un ajuste de configuración. instalamos esto:

Finalmente creamos el archivo de configuración launch.json en la carpeta .vscode del proyecto a analizar:

{
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Listen for Xdebug",
            "type": "php",
            "request": "launch",
            "port": 9003,
            "ignore": ["**/vendor/**/*.php"]
        }
    ]
}

Instalar la extensión de Chrome

La extensión auxiliar Xdebug ha demostrado su eficacia para una depuración flexible en el navegador. Esto hace posible habilitar o deshabilitar Xdebug solo cuando sea necesario. También puede cambiar fácilmente el modo de depuración (por ejemplo, para cambiar de depuración a creación de perfiles):

Configurar WordPress

Cuando se utiliza Xdebug en un entorno de WordPress, puede resultar útil desactivar la depuración dentro de los trabajos cron cuando hay una sesión de depuración activa. Esto facilita las solicitudes de depuración. Para hacer esto, agregue la siguiente línea a: wp-config.php a:

// disable wp cron on xdebug sessions
if (function_exists('xdebug_is_debugger_active') && xdebug_is_debugger_active()) {
    define('DISABLE_WP_CRON', true);
}

Con esta configuración tenemos una potente configuración que nos permite abordar problemas complejos de depuración con precisión. Ya sea para encontrar errores persistentes o para ajustar problemas de rendimiento, Xdebug no solo hace que el trabajo sea más eficiente, sino que también aporta una nueva calidad al desarrollo a través del control y la claridad del código.

Atrás