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.



Comentarios
  1. Hola

    ¿Hay alguna herramienta para depurar en linux (ubuntu precisamente)? Veo que esta está es para windows 🙁

    Responder

    • No, no, no es una herramienta para Windows. Se puede compilar en Linux, y hay muchas distros que la tienen empaquetada, como es el caso de Ubuntu.

      Responder

  2. Félix

    Yo soy más de depurar con prints y el firebug jajajajaja Al menos en Python, que me gusta más que PHP 😀

    Responder

    • Faraway

      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

      Responder

    • César

      Dios mio !

      Responder

  3. daniel

    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.

    Responder

  4. En esto estoy más que verde, soy apenas el botón de una flor.

    No puedo esperar para aprender un poco más.

    Responder

  5. Buena info….gracias!

    Responder

  6. […] puede ayudar a depurar nuestro código PHP en esas ocasiones en las que utilizar un depurador, como Xdebug, puede ser exagerado. FirePHP se integra con Firebug, y permite imprimir mensajes en su consola […]

    Responder

  7. […] depurar tu código PHP con Xdebug pero te encuentras detrás de un router, un proxy o un firewall que no administras? Si puedes […]

    Responder

  8. Nata

    Gracias me sirvio mucho

    Responder

  9. I prefer Codelobster.
    It has great free PHP debugger: http://www.codelobster.com

    Responder

Deja un comentario