Depurar Scripts de consola con PhpStorm

Depurar páginas web en PHP desde phpstorm es fácil, Jetbrains proporciona un generador de marcadores muy útil. Pero para depurar scripts desde consola no es tan obvio, aunque no es para nada complicado.

En un principio probé a establecer en una variable de entorno la clave “XDEBUG_SESSION” con el valor que utilizo en el para lanzar el depurador en la web, pero no dio resultado (puede que fuera por no tener la configuración de xdebug en el php.ini de cli).

Buscando alguna manera de hacerlo funcionar encontré aquí que puedes usar una variable de entorno:

$ export XDEBUG_CONFIG="profiler_enable=1"

Ahora solo debes darle al botón de Phpstorm de “escuchar conexiones”.

xdebug-connections

Ahora al lanzar tu script el debugger de Phpstorm se ejecutará y parará en el primer punto de interrupción.

Bonus! Puedes crearte unos bonitos alias en tu .bashrc para activar y desactivar xdebug.

alias xon="export XDEBUG_CONFIG=\"profiler_enable=1\""
alias xoff="export XDEBUG_CONFIG=\"profiler_enable=0\""