Conforme prometido no artigo anterior, vamos ver como configurar um sistema de debug de aplicações PHP. Para isso, vamos usar o Xdebug e aproveitar o suporte que o próprio Netbeans dá a essa ferramenta. Vamos lá:

Instalando o Xdebug no PHP

  1. Primeiro, faça download do arquivo .dll do Xdebug, de acordo com sua versão do PHP.
  2. Coloque a DLL dentro do diretório /ext, que deve ficar dentro do diretório de instalação do PHP. Caso você use o EasyPHP, o diretório é C:\Program Files\EasyPHP[VERSÃO]\php\ext.
  3. Abra seu php.ini para edição. Agora insira as seguintes linhas no final do arquivo:
    [XDebug]
    zend_extension="C:\Program Files\EasyPHP[VERSÃO]\php\ext\php_xdebug-VERSÃO_DO_XDEBUG.dll"
    xdebug.remote_enable=1
    xdebug.remote_host=127.0.0.1
    xdebug.remote_port=9000
    xdebug.remote_handler=dbgp
    xdebug.profiler_enable=1
    xdebug.profiler_output_dir="c:\WEB\xdebug"

    Note que você precisa editar as linhas de acordo com a sua configuração.

  4. Reinicie o Apache.
  5. Agora rode um phpinfo(). No caso do EasyPHP, abra em seu navegador o endereço http://localhost/home/phpinfo.php.
  6. Se tudo estiver certo, o phpinfo deve exibir uma categoria com as configurações do Xdebug.

Dica: Caso você não tenha sucesso na primeira tentativa, tente outra DLL.

Outra dica: Antes de instalar, você pode rodar um phpinfo() e verificar com qual compilador seu PHP foi construido. O EasyPHP com PHP 5.3 usa o MSVC6, logo o Xdebug deve ser 5.3 VC6.

Configurando o Netbeans para usar o Xdebug

No Netbeans, vá em Ferramentas > Opções > PHP > Geral. Agora, em Linha de comando, digite o caminho do interpretador PHP. Se você usa o EasyPHP, o caminho deve ser C:\Program Files\EasyPHP5.3.0\php\php.exe.

Certifique-se também que em Depuração > Porta do depurador está configurado a mesma porta setada no php.ini. No nosso caso, a porta 9000.

Reinicie o servidor Apache e pronto, XDebug e Netbeans pronto para uso. Em breve farei alguns artigos demonstrando qual a utilidade do debugging, como fazer, e algumas técnicas interessantes para testes. :)

E não deixe de ler o artigo Debugging PHP Source Code in the NetBeans IDE (em inglês), que explica como funciona o debug built-in do Netbeans.