Xdebug e Webgrind

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.

oshs2

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: