Alefe Souza

Configurando debugger PHP no VS Code

Há 2 weeks por

Sorry, this entry is only available in Brazilian Portuguese. For the sake of viewer convenience, the content is shown below in the alternative language. You may click the link to switch the active language.

O Visual Studio Code tem ganhado muita atenção hoje em dia, não só por ser um editor simples e eficiente assim como outros como Sublime Text, Atom e Brackets, mas também possui diversas funções a mais, como o debugger integrado.

Hoje aprenderemos a fazer o debugger funcionar em conjunto com o PHP, utilizando a extensão PHP Debugger e o XDebug.

Iniciando com o debugger PHP no VS Code

Para iniciar, você precisará criar um arquivo para copiar o output da sua função phpinfo();, pois o site do XDebug pode analisar o output e indicar automaticamente a versão correta para você. Após copiar o output, cole nesse site e clique em “Analyse my phpinfo() output”.

Após isso, baixe a versão indicada no link gerado, logo abaixo de “Instructions”, e mova preferencialmente para a pasta “ext” da sua instalação do PHP.

Após isso, no seu arquivo .ini (ou phpForApache.ini caso você utilize o WAMP), cole o seguinte código:

[XDebug]
zend_extension = (caminho do arquivo baixado)
xdebug.remote_enable = 1
xdebug.remote_autostart = 1

Caso você tenha colocado o arquivo baixado na pasta ext, você pode colocar apenas o nome dele na chave zend_extension.

Após isso, reinicie seu servidor e abra o arquivo no qual você colocou a função phpinfo();, se estiver tudo certo, irá aparecer isso ao pesquisar por “xdebug”:

Após isso, vamos configurar o VS Code para usar o debugger PHP, primeiro baixe a extensão “PHP Debugger” por Felix Becker, ela requer que você faça os passos anteriores para funcionar, e então reinicie seu VS Code.

Após isso, faça uma pequena edição no arquivo do phpinfo(); apenas para testar os breakpoints, você pode adicionar breakpoints apenas clicando ao lado no número da linha, assim como em IDEs modernas.

E então clique no quarto ícone da lateral esquerda, para entrar nas configurações de debug, e clique na engrenagem “Configure or Fix ‘launch.json'”, e escolha a opção PHP, isso gerará um arquivo .json dentro da pasta .vscode, nessa pasta ficam definidas configurações do workspace como opções de debug, tarefas e configurações personalizadas.

 

Após isso, o select “No Configurations” ficará escrito “Listen for XDebug”, e então você precisa apenas clicar no botão verde para iniciar o debugger.

Experimente clicá-lo e executar o nosso arquivo de testes, você notará que a execução irá parar, e seu VS Code ficará assim:

Você pode utilizar os comandos dessa área que apareceu no centro para continuar a execução, navegar pelos breakpoints, reiniciar e parar o debugger.

Aqui foi exemplificado com um script PHP simples, mas você pode utilizar essas funções de debugger em qualquer framework e até em uma execução do PHPUnit.

folderCategoria: Uncategorized
labelTags:

Comentários

  • Olá Alefe, parabéns pelo ótimo post, acredito que seu post é um dos únicos em português. Meu querido, seguinte, eu fiz todos os passos iguais aos seus, a única diferença está na minha paleta (aquela menorzinha, que permite movimentar e está no último print) de Debug, ele não apareceu um play igual à sua, apenas apareceu um pause no lugar. E se aperto o “pause”, nada acontece.

    A minha maior dúvida, fica em relação, como faço para ver o valor das variáveis, como no exemplo acima, imagina que você queira ver o valor de $testeSoma, como você faria?. Tem algum vídeo que possa recomendar?

    • Olá Cauê, quando ficar assim você deve recarregar a página no navegador mesmo, que então a execução vai parar e a tela vai ficar igual a minha, mostrando o valor das variáveis.

      • Perfeito, funcionou!, obrigado Alefe. Com relação a debug de API’s, você conhece alguma extensão?, pois no caso da API, não funcionaria com o Chrome, teria que “navegar” pelo Postman.

        • Acho que funciona normalmente, pois o XDebug meio que “escuta” a execução do PHP, portanto não faz diferença onde está executando.