Depurar PHP con Xdebug

Siguiendo con la serie de artículos sobre PHP, que empezamos en Tutorial rápido de PHP, hoy hablaremos de Xdebug, una extensión para PHP que permite, entre otras cosas, depurar nuestro código fuente. Es una de las dos extensiones que podemos utilizar como depurador en Eclipse PDT, siendo la otra Zend debugger (Zend debugger se instala junto con Zend Server CE, aunque también se puede instalar por separado).

Vamos a ver cómo utilizar Xdebug junto a WampServer y Eclipse PDT, aunque es muy sencillo adaptar estas instrucciones a otros paquetes WAMP y otros sistemas y clientes.

Lo primero que tenemos que hacer, a parte de instalar WampServer y Eclipse PDT, es crear un archivo PHP con una sola línea de código, una llamada a la función phpinfo(), que nos mostrará distinta información sobre la instalación actual

<?php phpinfo(); ?>

En la página generada por esta función debemos comprobar la versión de PHP instalada (en el título), si se compiló con MSVC6 o MSVC9 (campo Compiler) y si estaba activada la opción thread safe o no (campo Thread Safety). Basándonos en estos datos descargaremos una versión u otra de la librería de Xdebug, librería que deberemos copiar, por ejemplo, a C:\wamp\bin\php\php5.3.0\ext (en XAMPP, por otra parte, esta dll ya se incluye con la distribuión, y sólo hay que activarla).

Ahora tenemos que editar el archivo de configuración de PHP, php.ini, que podemos abrir haciendo clic sobre el icono de WampServer del área de notificación y seleccionando PHP -> php.ini. En este archivo debemos añadir las siguientes líneas, adaptando las rutas a nuestra configuración actual:

zend_extension="c:/wamp/bin/php/php5.3.0/ext/php_xdebug-2.0.5-5.3-vc6.dll"
xdebug.remote_enable=1
xdebug.remote_host="127.0.0.1"
xdebug.remote_port=9000
xdebug.remote_handler="dbgp"
xdebug.remote_mode=req
xdebug.profiler_enable = 1
xdebug.profiler_output_dir = "c:/wamp/tmp/"
xdebug.collect_params = On
xdebug.show_local_vars = On

Con esto le habremos indicado a PHP que vamos a utilizar Xdebug como profiler y como depurador a través del protocolo DBGp (y también que queremos que nos muestre las variables globales y los parámetros de las funciones).

Reiniciamos todos los servicios, y una vez hecho esto, en Eclipse con PDT nos vamos a Window -> Preferences, y aquí a PHP -> Debug. En este diálogo seleccionaremos XDebug como depurador a utilizar.



13 comentarios en «Depurar PHP con Xdebug»

    1. La depuración es un arte moderno y los prints son la herramienta más primitiva que existe… y que lamentablemente no deja de ser la más eficaz

  1. Eclipse es un excelente IDE, y para Java o PHP ni se diga, además viene por defecto en Fedora junto con Netbeans. Creo que en Ubuntu también.

    Gracias por la información sobre Xdebug.

  2. Pingback: Depurar PHP con FirePHP

  3. Pingback: Depurar con Xdebug de forma remota estando detrás de un firewall

Responder a Zootropo Cancelar respuesta

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.