joaquin - September 21, 2012
UPDATE: cambié el plugin de vim que se utiliza para debuguear por uno más nuevo mantenido en github.
El día de hoy estuve probando varios IDEs para PHP, porque quería debuguear un script con XDebug en lugar de utilizando echos, krumos y exits. Es decir, me quería ver más fresón. Y me daba flojera utilizar emacs que es lo que antes he descrito que puedes utilizar para debuguear PHP. Así que me bajé y probé:
Debo decir, que fue sumamente penoso y laborioso. Configurar cada uno de estos programas tiene su chiste, en especial eclipse fue un PAIN IN THE ASS. PHPStorm y NetBeans fueron más sencillos, pero vaya, que feos son los programas de java. Además de lentos. Lo peor de todos estos programas es configurar cada proyecto que quieres debuguear. Cuando debugueas con emacs y con vim simplemente lanzas el debugger y listo, abre cada archivo que vas necesitando sin tanta faramalla, así sean archivos de distintos proyectos (como cuando usas drush con tu proyecto de drupal). Así que al final desistí de estos “IDEs modernos” y regresé a vim.
Debo decir que debuguear con vim ha sido muy placentero. Entonces, vamos a los pasos para instalar:
sudo apt-get install php5-xdebug
. Si usas otro sistema operativo, buena suerte, seguro hay más tutoriales en google =). También recuerda aumentar el timeout the php-fpm. En nginx esto es con fastcgi_read_timeout 600;
xdebug.remote_enable=on
Y listo, cuando quieres debuguear simplemente preparas vim con F5 para que esté esperando conexiones de XDebug en el puerto 9000. Tienes entonces 5 segundos para lanzar tu script en la consola o entrar a la página de PHP que quieres debuguear. Si lo haces desde el explorador simplemente es cuestion de agregar ?XDEBUG_SESSION_START=1
al final de tu ruta o instalar la extensión de firefox de easy Xdebug para no tener que escribir esto sino simplemente apretar un boton para cuando quieras debuguear.
El debugger de vim tiene los shortcuts en una de sus ventanas así que es muy sencillo de aprender. Los breakpoints funcionan muy bien, e inspeccionar variables también, así que no hay excusas para no usar xdebug ahora.
Si estas usando xdebug con fpm o fastcgi en el puerto 9001 (como describo en un post anterior), entonces necesitas configurar el plugin de vim para escuchar este puerto poniendo esta línea en tu .vimrc:
let g:debuggerPort = 9001
Saludos!