Xdebug instalação e configuração no linux 🐧

Antonio Silva - Sep 4 '23 - - Dev Community

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.

Image description

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

Image description

Image description

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";
}
?>
Enter fullscreen mode Exit fullscreen mode
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]
Enter fullscreen mode Exit fullscreen mode

Profiling

  • Permite, com a ajuda de ferramentas de visualização, analisar o desempenho da sua aplicação PHP e encontrar gargalos.

Image description

Code Coverage Analysis

  • Para mostrar quais partes da sua base de código são executadas ao executar testes de unidade com PHPUnit.

Image description


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
Enter fullscreen mode Exit fullscreen mode

Ubuntu (Ondřej Surý's PPA):

sudo apt-get install php(versão)-xdebug
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

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
Enter fullscreen mode Exit fullscreen mode

Vamos vereficar se o xdebug foi instalado e está funcionando para isso use o seguinte código php:

<?php

phpinfo();
Enter fullscreen mode Exit fullscreen mode

Nas informações do php você deve encontrar uma seção do xdebug.

Image description


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
Enter fullscreen mode Exit fullscreen mode

Se checamos novamente na seção xdebug teremos apenas o modo coverage abilitado

Image description

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.

. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .