Qué es y cómo disponer de Xdebug

  • Por
En este artículo vamos a explicarte qué es Xdebug y ofrecer algunos tips sobre la instalación o su configuración en algunos entornos.

Muchos desarrolladores, aun con amplia experiencia en el lenguaje, se limitan a hacer depuración con las típicas funciones de PHP como var_dump(), print_r() o simples sentencias echo, con las que volcar el contenido de las variables en la salida de la página, hacia el navegador.

Si bien este método te pueda sacar de apuros llega un momento que se queda corto. Los que más echan en falta los debuggers complejos son los desarrolladores que vienen de otros lenguajes de programación, donde las esas herramientas son más tradicionalmente usadas. Si te acostumbras a usarlas, seguro que te pasará lo mismo.

Xdebug

Es una extensión de PHP para hacer debug con herramientas de depuración tradicionales, desde el editor, tal como se hace en lenguajes de programación clásicos.

Podemos encontrar esta extensión en su sitio web: http://xdebug.org/ pero lamentablemente si entras verás que en Xdebug no son especialistas en la comunicación y aunque se trate de una gran herramienta uno se siente perdido para saber por dónde comenzar a usarla.

Xdebug te permitirá no solo por analizar el contenido de las variables, sino también realizar el seguimiento del flujo de ejecución, para saber qué es lo que realmente está ocurriendo cuando algo no funciona como se esperaba.

Tienes disponible información sobre todas las variables creadas en un momento dado de la ejecución de tu aplicación y puedes ver su contenido de manera expandida. Te ofrece también la posibilidad de marcar puntos de ruptura de tu código, donde el flujo del programa se detendrá para que puedas ver el estado de tus variables, o la traza de ejecución. Si lo deseas puedes ser tan minucioso como acompañar la ejecución del programa línea a línea.

Instalar Xdebug

Es posible que tu instalación de PHP ya tenga Xdebug instalado. Lo mejor es comprobarlo primero ejecutando el típico phpinfo(). Entre la salida de esta función podrás encontrar el dato que necesitas, pero además puedes pedir que un asistente te lo revise automáticamente.

Entrando en la página http://xdebug.org/wizard.php encontrarás un sistema que te ofrece instrucciones a medida para instalar Xdebug, focalizadas en tu sistema operativo y la configuración de PHP. Podrás pegar en un textarea el contenido completo devuelto por la función phpinfo() y que la web te informe si está o no instalado y qué acciones tienes que realizar para actualizarlo o bien para instalarlo desde cero.

Pero sin duda lo mejor es hacerse con algún entorno donde ya tengas Xdebug configurado, pues te ahorrará el tener que meterle mano a tu sistema.

Por ejemplo el paquete "Mamp" para Mac (también tiene recientemente versión para Windows) tiene una opción para activar Xdebug.

Si instalas tu entorno de desarrollo con Vagrant y PuPHPet podrás activar tu mismo la configuración de Xdebug en la máquina virtual que uses como servidor de desarrollo.

Activar una IP remota para debugging

Cuando trabajas con Xdebug tienes la posibilidad de depurar únicamente desde el host local, por motivos obvios de seguridad. Si quieres debuggear desde otros ordenadores que no sean "localhost" tienes que activar una configuración indicando la IP remota desde donde quieres acceder a los servicios de depuración.

Lo tienes que hacer en el archivo "zzzz_custom.ini" y simplemente hay que agregarle una línea con la configuración:

xdebug.remote_host=192.160.0.1

Lógicamente en tu caso pondrás la IP de tu máquina desde donde quieres hacer Debug.

Para saber la localización del archivo "zzzz_custom.ini", y sobre todo en el caso que puedas tener varias versiones de ese archivo entre tus carpetas, puedes ver el contenido de tu phpinfo(), en la sección "Additional .ini files parsed".

Esta configuración es especialmente importante en el caso que uses un sistema virtualizado como entorno de desarrollo, que puedas haber creado con Vagrant o similares. En concreto desde PuPHPet puedes configurar automáticamente el sistema Xdebug, pero no te crea esta opción, necesaria porque vas a tener que depurar desde un ordenador distinto del host local. La IP que le pondrás será la IP del sistema host anfitrión, que en el caso de la configuración de PuPHPet será 10.0.2.2 que es como conoce tu host virtualizado al host anfitrión.

En esta imagen puedes ver el resultado del archivo "zzzz_custom.ini", una vez editado, que en mi caso está en la carpeta /etc/php5/fpm/conf.d. Es lo único que no te configura PuPHPet cuando quieres usar Xdebug.

Ya luego sería usar tu editor o IDE de desarrollo para poder integrar Xdebug en sus herramientas de depuración. En el próximo artículo te mostraremos los pasos que tienes que hacer para configurar Xdebug sobre Sublime Text.

Autor

Miguel Angel Alvarez

Miguel es fundador de DesarrolloWeb.com y la plataforma de formación online EscuelaIT. Comenzó en el mundo del desarrollo web en el año 1997, transformando su hobby en su trabajo.

Compartir

Comentarios

jagarsoft

14/4/2015
Depuracion de PHP con Xdebug
Hola
Xdebug es una heramienta fundamental, pero
se necesita algo más, ¿no? : un entorno integrado de desarrollo (IDE).
¿como se puede depurar desde un editor?
Un saludo!

Josean

11/10/2016
Problemas al instalar xdebug
Hola, pues no lo consigo. He probado con xampp 7.0 y 5.5. Creo seguir las instrucciones de bajar la dll, colocarla en c:xamppphpext Editar el fichero php.ini. Reiniciar el servidor. No consigo que aparezca, al ver phpinfo() la línea que indica que XDebug esta funcionando...
Llevo unas 6 horas con los intentos...