Depuração (em inglês: debugging) é o processo de encontrar a causa de um erro já detectado. Muita gente confunde depuração com teste, mas existe uma grande diferença entre esses conceitos.
Objetivo de testar
Executar uma aplicação visando determinados casos de teste e encontrar defeitos.
Objetivo de depurar
Analisar para identificar qual parte da aplicação está causando o defeito detectado, para que seja possível realizar sua correção.
Neste texto iremos configurar o ambiente para depuração em PHP, o exemplo prático será baseado no WAMP, instalado no Windows, que possui XDebug nativo. Nesse cenário, será preciso configurar o php.ini e uma IDE.
Não utilizo wamp, o que devo fazer?
Em caso de ambiente sem XDebug, será necessário realizar sua instalação antes de prosseguir.
Caso seu sistema operacional seja windows, acesse http://www.xdebug.org/, efetue o download da última versão respeitando o tipo do seu sistema (32bits ou 64bits).
Por outro lado, no ubuntu, basta executar o seguinte comando no terminal.
Configuração do php.ini
Na informação “zend_extension”, informe o caminho do XDebug, no caso do windows um arquivo .dll, por outro lado no ubuntu será um arquivo .so. Reinicie o seridor ao finalizar esta configuração, caso esteja utilizando WAMP, reinicie todos os serviços.
Verificar configuração
Para verificar as configurações realizadas, acesse as informações do PHP através da função phpinfo().
Configurando IDE (Eclipse PDT, Zend Studio)
Com o XDebug configurado, vamos precisar realizar algumas configurações na IDE.
Selecione o XDebug na opção PHP Debugger e clique em Configure, selecione o XDebug e clique em configure novamente. Na opção Accept Remote Session (JIT), marque a opção Any.
Volte para tela de Debug, clique em PHP Executables, depois clique em Add, siga as configurações abaixo e clique em Finish.
Volte para tela de Debug e selecione em PHP Executable a opção que acabamos de criar e desmarque a opção Break at First line, confira o resultado da tela de debug.
Agora vamos definir em qual navegador nosso script/aplicação será executado ao realizar o debug, eu escolhi o chrome, mas fique livre para escolher seu preferido.
Selecione a opção Use external web browser, clique em new e adicione um nome e o executável do navegador e clique em OK.
Agora selecione o navegador que você acabou de criar, clique em Apply e depois OK para concluir.
Trabalhando com depuração no PHP
Com a nossa IDE configurada, precisamos criar um projeto e definir o perfil de debug para este projeto.
Escolha o nome example-debug e de preferência coloque este projeto na raiz do servidor, na pasta www se estiver usando o wamp.
Agora crie um arquivo index.php nesse projeto com o seguinte conteúdo.
Agora marque um breakpoint na linha 6, clicando duas vezes na faixa lateral que corresponde está linha.
Feito isso vamos configurar o perfil de debug da aplicação.
Clique com o botão direito do mouse em PHP Web Page e adicione um novo perfil, confira o resultado dessa configuração.
Agora clique em Apply, em seguida clique em Debug, seu navegador irá abrir realizando uma requisição e logo de cara o eclipse irá acusar que encontrou um breakpoint durante a execução, perguntando se você deseja mudar a perspectiva do eclipse para debug.
Ao clicar em yes nossa perspectiva muda para debug, veja o resultado:
Enfim, com o XDebug configurado no ambiente, podemos depurar desde um script simples como visto acima até aplicações de grande porte.