Debugando PHP usando o editor VIM

image_pdfimage_print

Que o editor VIM é um mega canivete suiço, todos sabem ou já ouviram pelo menos falar.

Neste artigo iremos apresentar como debugar um código PHP no VIM. Para ativar o debug, instale o XDebug ou ative em seu PHP. Iremos explicar como fazer isto no Debian:

Debian 8 Jessie:

#aptitude install php5-xdebug

Em seu php.ini adicione a configuração abaixo. Caso esteja utilizando Debian 8, é provável que esta configuração, inclusive um pouco mais completa já esteja definida em /etc/php5/conf.d/20-xdebug.ini

Debian 9 Stretch:

#aptitude install php<span data-mce-type="bookmark" style="display: inline-block; width: 0px; overflow: hidden; line-height: 0;" class="mce_SELRES_start"></span>-xdebug

Em seu php.ini adicione a configuração abaixo. Caso esteja utilizando Debian 9, é provável que esta configuração, inclusive um pouco mais completa já esteja definida em /etc/php//conf.d/20-xdebug.ini

xdebug.remote_enable=1
xdebug.remote_handler=dbgp
xdebug.remote_host=127.0.0.1
xdebug.remote_port=9000

Verifique se o VIM utilizado possui suporte aos seguintes recursos, conforme comando abaixo:

vim --version

Facilidades necessárias: +python e +signs na lista de recursos ativados. Caso não estejam, verifique em sua distribuição em como ativar estas opções.

Em seguinda, abra o vim. Tecle <f5> para iniciar o modo debug do VIM e em seguida vá até a página a ser debugada e acrescente a URL desta página o seguinte parâmetro:

XDEBUG_SESSION_START=1

Ao aperta <f5>, seu VIM deverá demonstrar uma mensagem como abaixo:

waiting for a new connection on port 9000 for 5 seconds...

Caso os procedimentos tenham sido executados corretamente o seu VIM deverá estar em modo debug, aguardando comandos para seguir com a execução do código PHP, conforme suas instruções.

Os possíveis comandos de debug são:
to step into;
to step over;
Irá preparar o VIM para aguardar uma nova conexão / chamada para debug pelos próximos X segundos
ver todas as variáveis do contexto;
visualizar as propriedades sob o cursos atual

O comando :Bp irá adicionar ou remover um breakpoint na linha atual.
:Up e :Dn movem na stack trace.

Gostou? Tire um minutinho e dê sua contribuição para Drall Dev Community no Patreon!