O Xdebug é uma ferramenta incrível que tem que fazer parte do seu dia a dia como dev PHP se você quiser ser levado a sério. Depois que você aprender a usar não vai mais viver sem ele.
Instalação
Pra instalar o Xdebug é muito fácil graças a ferramenta que analisa o phpinfo() e te da a opção e as configurações necessárias para a extensão funcionar, não vou nem entrar em muitos detalhes de tão simples.
- Crie um arquivo php com phpinfo() dentro e rode no navegador.
- Selecione a página toda (é, a página do phpinfo(), não o código fonte HTML) e cole no box desta página: http://xdebug.org/wizard.php
- Ao clicar em Analyse my phpinfo() output ele vai te dar algumas informações sobre o seu PHP e em baixo o arquivo que você deve usar e as instruções para instalar e configurar.
Para navegar manualmente até a página do wizard do Xdebug vá ao site http://xdebug.org/ clique em download e depois em custom installation instructions dentro do tópico Releases.
Gostou deste artigo?
Receba atualizações semanais com novos artigos do WebDevBr e outras dicas!
Além destas configurações eu também fiz algumas configurações adicionais:
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.profiler_enable=1
xdebug.profiler_output_dir="Dirquequerosalvaroslogs"
xdebug.max_nesting_level=250
Com isso eu tenho acesso a saída do Xdebug pela porta 9000 (para configurar IDEs, por exemplo) e todos os debugs que faço são salvos no diretório que informei.
Melhora no debug
Pra quem é fan de var_dump e quer melhorar a exibição de erros já vai sentir uma diferença muito grande.
Por exemplo o código:
<?php
new PDO();
var_dump(array(
'nome'=<'Erik',
'sobrenome'=<'figueiredo',
'idade'=<29
));
Veja que não declarei parâmetros obrigatórios no PDO, ele vai retornar um erro, e em seguida um var_dump() de um array, veja a diferença entre a saída com e sem Xdebug.
Viu a diferença, não precisa nem comentar né.
Os breakpoints
O Xdebug vem com um recurso muito legal, os breakpoints, estes carinhas são responsáveis por pausar a depuração do código na linha em que forem chamados, em outras palavras, eles pausam o script.
A real vantagem disso é você integrá-lo a uma IDE, você vai poder rodar o processo e parar aonde quiser retornando o valor das variáveis naquele momento, isso é uma mão na roda para entender o porque que aquele código ta fazendo aquele ato bizarro. É muito parecido com o "combo" var_dump($var);die();, mas você pode continuar a execução e as informações são bem completas.
Não vou explicar IDE por IDE aqui e como e configura, mas vou dar uma dica. Lembra do bloco:
xdebug.remote_enable=1
xdebug.remote_port=9000
xdebug.profiler_enable=1
xdebug.profiler_output_dir="Dirquequerosalvaroslogs"
xdebug.max_nesting_level=250
Olhe apenas as duas primeiras linhas e veja minha tela de configurações do PHPStorm:
Simples né.
Só isso?
Não, o Xdebug tem muita coisa legal que ainda podia falar aqui, mas por hora vamos ficar com a documentação oficial dele: http://xdebug.org/docs/
Da uma olhada, da pra melhorar muito sua produtividade com ele.
Lembrando que se achar que da pra acrescentar mais alguma coisa aqui posta nos comentários.