O Xdebug é uma poderosa extensão PHP para depuração de código. Ela suporta rastreamento de pilha e funções, permite ainda consultar a memória alocada, variáveis, sessões e muitas outras informações relevante a etapa de desenvolvimento.
Já o Webgrind é uma ferramenta auxiliar, está utiliza os dados gerados pelo Xdebug para montar uma lista estatística com informações como, quantas vezes determinada função foi chamada, quanto tempo cada uma delas demorou para ser concluída etc. Com essas informações em mãos, podemos direcionar nossos esforços para as funções mais custosas.
- Download/Instalar Xdebug: https://xdebug.org/docs/install
- Download/Instalar Webgrind: https://github.com/jokkedk/webgrind
Caso queira integrar o Xdebug com a IDE Netbeans basta seguir os passos abaixo:
Adicione as linhas abaixo ao arquivo /etc/php5/mods-available/xdebug.ini (este caminho irá variar de sistema para sistema):
xdebug.remote_autostart=0 xdebug.remote_connect_back=1 xdebug.remote_enable=1 xdebug.remote_handler=dbgp xdebug.remote_host=localhost xdebug.remote_port=9000 xdebug.remote_mode=req xdebug.profiler_enable=1 xdebug.profiler_output_dir=/var/log/xdebug xdebug.idekey=netbeans-xdebug
A primeira linha quando definida como 1, irá iniciar um debug para cada requisição. Quando definida como 0 só irá iniciar o debug quando você disparar essa ação de debug via “Netbeans”. Consulte a documentação para entender melhor: https://xdebug.org/docs/remote
As linhas 8 e 9 se fazem necessário quando queremos utilizar o Webgrind. Lembre-se de atribuir permissão de escrita e leitura ao diretório especificado em xdebug.profiler_output_dir.
Por fim será necessário editar o config.php do Webgrind e alterar duas variáveis:
static $profilerDir = '/var/log/xdebug'; static $defaultTimezone = 'America/Sao_Paulo';
A variável $profilerDir deve representar o caminho especificado em xdebug.profiler_output_dir.
Referência: