XDEBUG: LA HERRAMIENTA ESENCIAL PARA DEPURAR Y OPTIMIZAR CÓDIGO PHP
Xdebug es la extensión php más poderosa y utilizada para desarrollo profesional. Transforma la experiencia de desarrollo al permitir depuración paso a paso, análisis de rendimiento, trazas detalladas y mucho más.¿Qué es Xdebug?
Xdebug no es solo un depurador, ofreciendo varias funcionalidades clave:- Step Debugging: Depuración interactiva breakpoints, inspección de variables, stack traces.
- Profiling: Genera información de rendimiento para identificar cuellos de botella.
- Code Coverage: Ideal para pruebas unitarias (muestra qué líneas se ejecutan).
- Function Tracing: Registra todas las llamadas a funciones con argumentos y valores de retorno.
- Mejoras en var_dump y errores: Salidas mucho más legibles con colores, colapsables y stack traces mejorados.
- Development Helpers — Muestra información útil en errores, excepciones y super globals.
Instalación
La forma más sencilla es usar el Xdebug WizardMétodos comunes
- PECL:
pecl install xdebug - Windows: Descarga el fichero ".dll" correspondiente desde xdebug.org/download
- Docker: Añadir en el "Dockerfile" o "pecl install" en el contenedor.
zend_extension=xdebug
[xdebug]
xdebug.mode=debug,develop
xdebug.start_with_request=yes
xdebug.client_host=127.0.0.1
xdebug.client_port=9003
xdebug.idekey=VSCODE ; o el que se use en el IDE
Configuración recomendada según el uso
Ejemplos
Depuración paso a paso
- Poner un "breakpoint" (F9).
- Ejecutar el script o recargar la página.
- Usar F5, F10 (step over), F11 (step into), Shift+F11 (step out).
Profiling
//php.ini
xdebug.mode=profile
xdebug.output_dir="/tmp/profiles"
Var_dump mejorado
Solo con "xdebug.mode=develop" ya se verán los var_dump mucho más útil y una interfaz gráfica mejorada.Buenas prácticas y consejos
- No activar nunca Xdebug en producción ya que tiene un impacto en el rendimiento.
- Usar "xdebug.start_with_request=trigger" y una extensión de navegador como Xdebug Helper para Chrome/Firefox para activarlo solo cuando se necesite.
- Configurar path mappings correctamente en Docker o entornos remotos.
- Combinar con herramientas como Laravel Debugbar, Clockwork o Tracy para una experiencia aún más completa.
- Actualízar regularmente
Alternativas y complementos
Aunque Xdebug sigue siendo el estándar, existen alternativas más ligeras para casos específicos:- PHP Debugger es un fork ligero solo para debugging.
- Ray (de Spatie):para debugging visual.
- PHP Debug Bar: barra de depuración en la propia aplicación.