Configurando o Xdebug em editores da Jetbrains

Configurando o Xdebug em editores da Jetbrains
Jonilson Sousa
Jonilson Sousa

Compartilhe

Introdução

Estava eu, estudando novamente o framework Laravel do mundo PHP - depois de algum tempo muito focado no Java e usando o Intellij como editor de código favorito – e percebi uma coisa: a utilização do debug não é bem explicada... vocês já perceberam isso? No meu caso, o debug foi, e é, imprescindível quando estou no Java. Portanto, partindo dessa percepção inicial, este artigo mostrará como podemos fazer debug da aplicação Laravel nos editores da Jetbrains. Bora lá?

Banner da Escola de Programação: Matricula-se na escola de Programação. Junte-se a uma comunidade de mais de 500 mil estudantes. Na Alura você tem acesso a todos os cursos em uma única assinatura; tem novos lançamentos a cada semana; desafios práticos. Clique e saiba mais!

Alguns pontos importantes a serem destacados

O primeiro ponto que é preciso destacar é que daqui em diante vamos nos referir aos editores Intellij Idea ou PHP Storm apenas como como “editor”, já que o que vamos abordar neste artigo funciona tanto para o Intellij Idea quanto para o PHP Storm.

Outro ponto importante é que vamos precisar instalar apenas uma ferramenta no sistema operacional. Durante este artigo vamos utilizar o Linux, mais especificamente o Ubuntu 20.04, que é o sistema que utilizo atualmente, mas você pode utilizar os links abaixo, para realizar as instalações no Windows e ou no macOS respectivamente:

Requisitos

Antes de irmos para o debug de fato precisamos cumprir alguns requisitos.

Xdebug

O primeiro requisito que precisamos é instalar e configurar o Xdebug que é, segundo os próprios desenvolvedores, “uma extensão para PHP e fornece uma variedade de recursos para melhorar a experiência de desenvolvimento PHP” bem como o Step Debugging (que significa “depuração em etapas”). Ou seja, podemos percorrer nosso código PHP e verificar valores de variáveis, dentre outras coisas durante a execução do código, o que é de extrema importância quando temos algum comportamento estranho, mas não estamos conseguindo identificar a causa real do problema, para que possamos corrigir.

Então, para fazer a instalação da versão 8 do xdebug (que é para o PHP 8) basta atualizar os repositórios disponibilizados no Ubuntu, usando o seguinte comando:

sudo apt update

E em seguida fazer a instalação usando o seguinte comando:

sudo apt install php-xdebug

Porém se você não está usando a versão 8 do PHP você provavelmente, deve estar utilizando o PPA do Ondřej Surý e assim como eu, deve utilizar o seguinte comando:

sudo apt install php7.4-xdebug

Agora precisamos fazer uma configuração simples, como o Xdebug é uma extensão do PHP ele tem seu próprio arquivo de configuração, o caminho desse arquivo é:

/etc/php/7.4/mods-available/xdebug.ini

Então, para editar podemos utilizar o nosso editor de preferência, no terminal sempre uso o nano. Utilizamos então o seguinte comando:

sudo nano /etc/php/7.4/mods-available/xdebug.ini

Quando abrir o arquivo, possivelmente ele só terá a seguinte linha:

zend_extension=xdebug.so

Logo abaixo da mesma devemos inserir as seguintes linhas:

xdebug.mode=debug
xdebug.start_with_request=yes
xdebug.discover_client_host=1

Pronto, podemos sair e salvar o arquivo e com isso terminamos nossa configuração do Xdebug.

Extensões

A própria documentação do editor fala que precisamos instalar duas extensões no editor. Porém, uma delas é paga e por isso vamos utilizar apenas uma que é gratuita.

Então, precisamos instalar essa extensão Laravel no editor para podermos continuar.

Para isso, podemos ir no link acima e clicar no botão “Install to <Nome e versão do seu editor>” que já deve ser feita a instalação no seu editor.

Caso não consiga dessa forma, você pode abrir as configurações do editor indo na opção “File” e depois na opção “Settings” e acessar a seção “Plugins” e então pesquisar por “Laravel” e em seguida clicar no botão “Install” do respectivo plugin, e em seguida reiniciar o editor.

Extensão navegador

Para fazer o debug de uma aplicação PHP também precisamos instalar uma extensão no navegador onde vamos acessar a aplicação. Para isso, pesquise e instale a extensão Xdebug helper no seu navegador preferencial.

Projeto

Precisamos também estar com o projeto importado no editor para darmos continuidade no restante da configuração.

Configurando a execução em modo debug

Agora que temos tudo disposto, podemos partir para a configuração de fato no editor para usar o debug.

  • Criar configuração de execução:

No menu principal do editor precisamos acessar a opção “Run | Edit Configurations” e em seguida, clicar no botão de adicionar (“ + ”) e escolher a opção “PHP Script”:

Alt: print de tela do menu principal do Intellij Idea em fundo preto, com a seleção da opção “Edit Configurations” em formato de barra de rolagem e destaque em retângulo vermelho na opção “Edit Configurations” representando as etapas de acesso. Alt: print de tela “Run/Debug Configurations” do Intellij Idea em fundo preto, com a seleção da opção “PHP Server” selecionada em azul representando a criação de uma nova configuração de execução.
  • Configurando a execução:

Agora podemos colocar um nome de nossa preferência no campo “Name”, e na seção “Configuration” devemos colocar no campo “File” o caminho completo do arquivo “artisan” do nosso projeto ou então usar o botão “Browse…” para ir até o arquivo. E, por fim, devemos colocar no campo “Arguments” a palavra serve. Agora podemos clicar no botão “Apply” e depois em “OK”. Veja a imagem abaixo:

Alt: print de tela “Run/Debug Configurations” do Intellij Idea em fundo preto, com o campo “Name” preenchido com o nome “PHP Server”, logo abaixo na seção “Configuration” o campo file preenchido com o valor “/home/jonilson/projects/debug/artisan” e logo abaixo no campo “Arguments” preenchido com o valor “serve” e por fim na seção “Command Line” o campo “Interpreter” é preenchido com o valor “PHP 7.4 (7.4.3)” representando as configurações necessárias para a criação de execução da aplicação no editor.

Explicando melhor, com essa configuração estamos dizendo ao editor para ele executar um script PHP, ou seja, ele vai usar o Built-in Web Server do PHP (php) para subir a aplicação, e o script de fato que ele vai usar é o artisan com o argumento serve. Por fim, ele vai estar executando o comando simples para subir a aplicação:

php artisan serve
  • Iniciando o ouvinte de conexões de debug para PHP:

Agora precisamos clicar no botão “Start Listening for PHP Debug Connections” no menu principal do editor, essa opção vai fazer com que o editor escute uma conexão de debug vinda do Xdebug.

Alt: print de tela do menu principal do Intellij Idea em fundo preto, com destaque em retângulo vermelho na opção “Start Listening for PHP Debug Connections” representando a ativação do ouvinte de  conexões de debug para PHP.
  • Adicionar breakpoint:

Agora podemos adicionar um breakpoint em qualquer parte do projeto. Pode ser no arquivo index.php na pasta public do projeto, nas primeiras linhas apenas para teste.

Alt: print de tela de edição do editor com o arquivo “index.php” aberto e com um círculo preenchido em vermelho bem como a linha 06 toda marcada em vermelho representando um breakpoint no arquivo.
  • Executar e acessar aplicação:

Agora podemos iniciar a aplicação em modo debug clicando na opção “Debug ‘PHP Server’” no menu principal e então acessar a aplicação pelo navegador e a execução vai para no nosso breakpoint.

Alt: print de tela de edição do editor com o arquivo “index.php” aberto e com um círculo preenchido em vermelho na linha 06 e toda a linha marcada em azul o script parado no ponto demarcado pelo breakpoint esperando a liberação do restante da execução.

Conclusão

Assim, podemos ter clareza de como instalar e configurar Xdebug, bem como as extensões necessárias nos editores e no navegador. Com isso conseguimos utilizar o debug nos editores da Jetbrains com Xdebug por baixo do panos, e atingimos um ambiente similar ao Java nos editores, que pra mim, é muito mais produtivo e rápido. E, de bônus, podemos utilizá-lo para outros frameworks do PHP ou até um script simples PHP.

Gostou do artigo e quer aprender mais sobre PHP e Laravel? Aqui na Alura temos a formação PHP que mostra muito mais sobre PHP, Laravel, Lumen. Até a próxima!

Jonilson Sousa
Jonilson Sousa

Sou desenvolvedor de software no Grupo Alura. Trabalhando com as mais diversas tecnologias, como Java, Python, Javascript, PHP usando frameworks como Spring Boot, Flask. E gosto de ver outras tecnologias e ou frameworks legais por diversão.

Veja outros artigos sobre Programação