Usando o Xdebug do PHP Artigo

Conheça os cursos gratuitos do WebDevBr! - Inscreva-se!


Este artigo foi publicado a 2 anos, 8 meses, 3 semanas atrás.

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.

  1. Crie um arquivo php com phpinfo() dentro e rode no navegador.
  2. 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
  3. 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.

Erro e var_dump() sem Xdebug

Erro e var_dump() com 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:

Configuração 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.


Cursos relacionados


* Parcelamento apenas cartão de crédito! Pode haver uma pequena variação no parcelamento em relação a simulações apresentadas!