Xdebug é uma extensão para PHP e fornece uma variedade de recursos para melhorar a experiência de desenvolvimento de PHP.
Step Debugging
- Uma maneira de percorrer seu código em seu IDE ou editor enquanto o script está em execução.
Improvements to PHP's error reporting
- Uma função var_dump() aprimorada, rastreamentos de pilha para Avisos, Avisos, Erros e Exceções para destacar o caminho do código para o erro
Tracing
- Grava todas as chamadas de função, com argumentos e local de invocação no disco. Opcionalmente, também inclui todas as atribuições de variáveis e valores de retorno para cada função.
<?php
$str = "Xdebug";
function ret_ord( $c )
{
return ord( $c );
}
foreach ( str_split( $str ) as $char )
{
echo $char, ": ", ret_ord( $char ), "\n";
}
?>
TRACE START [2007-05-06 14:37:16]
0.0003 114112 -> {main}() ../trace.php:0
0.0004 114272 -> str_split('Xdebug') ../trace.php:8
0.0007 117424 -> ret_ord($c = 'X') ../trace.php:10
0.0007 117584 -> ord('X') ../trace.php:5
0.0009 117584 -> ret_ord($c = 'd') ../trace.php:10
0.0009 117584 -> ord('d') ../trace.php:5
0.0010 117584 -> ret_ord($c = 'e') ../trace.php:10
0.0011 117584 -> ord('e') ../trace.php:5
0.0012 117584 -> ret_ord($c = 'b') ../trace.php:10
0.0013 117584 -> ord('b') ../trace.php:5
0.0014 117584 -> ret_ord($c = 'u') ../trace.php:10
0.0014 117584 -> ord('u') ../trace.php:5
0.0016 117584 -> ret_ord($c = 'g') ../trace.php:10
0.0016 117584 -> ord('g') ../trace.php:5
0.0019 41152
TRACE END [2007-05-06 14:37:16]
Profiling
- Permite, com a ajuda de ferramentas de visualização, analisar o desempenho da sua aplicação PHP e encontrar gargalos.
Code Coverage Analysis
- Para mostrar quais partes da sua base de código são executadas ao executar testes de unidade com PHPUnit.
Instalando
Instalar o Xdebug com um gerenciador de pacotes costuma ser o caminho mais rápido. Dependendo da sua distribuição, execute o seguinte comando:
Ubuntu (18.04 LTS/Bionic, 20.04 LTS/Focal):
sudo apt-get install php-xdebug
Ubuntu (Ondřej Surý's PPA):
sudo apt-get install php(versão)-xdebug
Para outras distribuições linux aqui.
Instalando com PECL
Você pode instalar o Xdebug através do PECL no Linux com Homebrew.
Pré-requisitos:
- GCC e bibliotecas associadas.
- Cabeçalhos de desenvolvimento PHP.
Run:
pecl install xdebug
Configurando
Primeiro temos que encontrar o arquivo de configuração dos xdebug, no linux ele se encontra no seguinte caminho:
cd /etc/php/sua versão do php/mods-available
Dentro desse diretório encontra-se xdebug.ini o arquivo de configuração do xdebug e abra o arquivo com algum editor de código.
sudo seu editor xdebug.ini
Coloque as seguintes configurações:
zend_extension=xdebug.so
xdebug.mode=debug,develop
xdebug.start_with_request=yes
xdebug.client_port=9003
xdebug.client_host=127.0.0.1
xdebug.cli_color=1
xdebug.show_local_vars=1
Vamos vereficar se o xdebug foi instalado e está funcionando para isso use o seguinte código php:
<?php
phpinfo();
Nas informações do php você deve encontrar uma seção do xdebug.
Resolvendo um problema
Na imagem acima, mostra que o nosso xdebug está com os modos Development Helpers e Step Debugger ativos, mas se em um determinado projeto quisermos ativar ou desativar algum modo sem mexer no arquivo principal do xdebug.
Para que isso, seja possível vamos usar a variável de ambiente XDEBUG_MODE, como no exemplo abaixo:
XDEBUG_MODE=coverage php -S 127.0.0.1:8000
Se checamos novamente na seção xdebug teremos apenas o modo coverage abilitado
Aqui encontra-se as instruções dos outros modos e de todas as configurações possiveis do xdebug.
Assim termina o nosso guia de instalação e configuração do xdebug no linux.