PHP debug en Sublime Text 3 con XDebug

Sublime TextUna de las cosas que mas uso cuando utilizo Netbeans, Eclipse o incluso Chrome DevTools (para Javascript) es el debugger. Para PHP utilizo Sublime Text, el cual no tiene un debbuger de serie, pero como no, siempre hay plugins que nos solucionan estos problemas. En este caso voy a utilizar la extensión de PHP xdebug y el plugin XDebug Client para Sublime Text 2/3. El pc donde lo hago corre sobre Linux Mint XFCE. Vamos a ello:

Instalar la extensión de PHP xdebug

Podemos mirar si la tenemos instalada con un simple phpinfo(). En el caso de que no, vamos a la consola y la instalamos

$ sudo apt-get install php5-xdebug

Ahora vamos a configurarlo con unos simples valores. Para esto editamos el fichero xdebug.ini que se encuentra en /etc/php5/conf.d y añadimos las lineas siguientes:

zend_extension=/usr/lib/php5/20100525/xdebug.so
xdebug.remote_enable=On
xdebug.remote_host=»localhost»
xdebug.remote_port=9000
xdebug.remote_handler=»dbgp»
xdebug.remote_autostart=1
;xdebug.remote_log=»/tmp/xdebug.log

El primero es la ruta a la extenxion xdebug, puede cambiar dependiendo versiones. El ultimo lo podemos descomentar por si tenemos problemas, para ver el log.

Para que empieze a funcionar, hay que reiniciar el servicio

$ sudo service apache2 restart

Instalar el plugin XDebug Client en Sublime Text

Desde Package Control (Contrl + Shift + P -> install) buscamos xdebug client y la instalamos. Una vez instalada, hay que crear un proyecto en Sublime Text. Para ello, abrimos la carpeta donde tenemos nuestros scripts y desde el menú Project, le damos a Save Project As y lo guardamos donde queramos, yo lo suelo hacer en el raíz del proyecto. Una vez hecho esto, hay que añadir unos valores a este proyecto, vamos al menú Project -> Edit Project y añadimos nuestra ruta para que quede de esta manera:

Conf xdebug

Reiniciamos Sublime Text y ya podemos empezar a hacer debug.

Trabajando con Xdebug Client

En el menú Tools de Sublime nos ha aparecido el submenu xdebug, donde aparecen las opciones de iniciar el debugger de forma normal o con el navegador (browser). Si la lanzamos con el navegador, nos abre el navegador con la url, añadiendo el parámetro ?XDEBUG_SESSION_START=sublime.xdebug. En Sublime nos aparecerán unas ventanas que van a ser donde podamos ver las variables, los ficheros que se van ejecutando, etc… Para verlo mas claro, hacemos un código de ejemplo con un for y le añadimos un breakpoint. Esto se hace con el botón derecho del ratón sobre una linea dentro del for y pinchamos en xdebug -> add/remove breakpoint. Lanzamos de nuevo el debugger y veremos información sobre el script que estamos ejecutando.

xdebug exampe

Tanto desde el menú Tools -> xdebug como pinchando con el botón derecho sobre el código, tenemos los típicos Run, Run to Line, Step Over,… que tenemos en todos los IDEs.

XDebug desde consola

Para los que lanzamos scripts de PHP desde consola, hay que seguir estos pasos.

1.- En sublime, inicial el debugger, pero sin lanzar el browser.

2.- Desde linea de comandos, primero crear una Variable de Entorno y luego se ejecuta el script

export XDEBUG_CONFIG=»idekey=sublime.xdebug»
php testdebug.php

¿Te ha gustado este artículo? ¿te ha servido de ayuda? No dudes en comentarlo o compartirlo!

Deja una respuesta