Cómo Debuggear Eficazmente en PHP Usando Xdebug

Xdebug es una extensión de PHP que proporciona la capacidad de depuración código y errores. Utiliza DBGp que es protocolo de depuración simple que se usa para comunicar el motor de depuración propio de php con un cliente, normalmente un IDE.

El desarrollo en PHP puede ser desafiante, especialmente cuando se trata de depurar código. Tradicionalmente, hemos recurrido a var_dump(), print_r(), o dd() para esta tarea, pero estos métodos tienen sus limitaciones. Aquí es donde Xdebug se convierte en un cambio de juego, ofreciendo capacidades de depuración avanzadas comparables a las que se encuentran en Java o .NET.

 ¿Que es Xdebug?

Xdebug es un depurador PHP poderoso que mejora significativamente el proceso de depuración. Permite seguir la ejecución del código paso a paso, inspeccionar la pila de llamadas, y evaluar variables en tiempo real, transformando la manera en que debuggeamos en PHP. 

Beneficios de Usar Xdebug para Debugging en PHP:

  • Optimización de Código: Permite refinar el código para mejorar la eficiencia y el rendimiento.
  • Detección de Bugs: Facilita la identificación y corrección de errores en etapas tempranas del desarrollo.

¿ Porque debuggear el código?

El debug sirve para optimizar el código además de para detectar posibles bugs de diversa gravedad. A base de pruebas es más fácil ir mejorando las funcionalidades, depurando el código para que este sea más eficiente y utilice de manera más eficaz los recursos del hardware.

¿Cómo instalarlo?

 En esta entrada voy a configurar Visual Studio Code y XAMPP para trabajar en PHP.  El proceso de
configuración sería el siguiente:

 Primeros configuramos el entorno de XAMPP

  1. Descargar Xdebug
    para la versión especifica de PHP  (PHP 8.0 (64-Bit) o PHP 8.1 (64-Bit))
  2. Mover el archivo dll
    descargado a la ruta: C:\xampp\php\ext
    1. (Opcional) renombrar
      el archivo dll descargado: php_xdebug.dll
  3. Ahora debes abrir el
    fichero  C:\xampp\php\php.ini con Notepad++ o el blog de notas
  4. Ir a la línea
    output buffering y deshabilitala:  output_buffering = Off
  5. En el mismo archivo
    php.ini, baja hasta encontrar la sección  [XDebug]  (de no existir
    créala), copia y pega estas líneas:
     
[XDebug]
zend_extension=C:\xampp\php\ext\php_xdebug.dll
xdebug.mode=debug
xdebug.client_host = 127.0.0.1
xdebug.client_port = 9003
xdebug.start_with_request=trigger

Por último reinicia el servidor apache en XAMPP

Ahora vamos con la configuración en VSC.

Ir al apartado de extensiones y descargar la extensión de Xdebug

                    

Una vez descargada e instalada la extensión, créate un pequeño fichero de ejemplo. En mi caso he creado un index.php y añade unos cuantos puntos de ruptura.

                  

Pulsa en el botón superior derecho con el símbolo del Debug PHP, y la magia comenzará a funcionar

Espero que esto te pueda ayudar para resolver algunos quebraderos de cabeza a la hora de hacer debugging en tu código.

Adicionalmente, para proyectos en los que quieras o necesites ejecutar test con covertura. Solo tendrías que cambiar la línea

xdebug.mode=debug por xdebug.mode=coverage

y ejecutar el comando vendor/bin/phpunit --coverage-html reports/

Al correr los test con convertura, phpunit te genera un informe indicandote que partes de tú código están sin testear y que partes sí.

Xdebug transforma el debugging en PHP, brindando herramientas avanzadas que facilitan la identificación y corrección de errores, y la optimización del código. Sigue estos pasos para configurar Xdebug en tu entorno de desarrollo y lleva tu habilidad de depuración al próximo nivel.

¿Listo para mejorar tu experiencia de debugging en PHP? Configura Xdebug hoy y comparte cómo ha cambiado tu flujo de trabajo. Si este tutorial te ha sido útil, no olvides compartirlo en tus redes sociales. ¡Feliz debugging!

Si te gustó está entrada y crees que puede ser de utilidad o interés,  comparte este artículo en tus redes sociales 😉 👍

 

Fuentes:

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *