Novidades no PhpStorm 2024.3

Estes são alguns destaques desta versão:

  • Suporte para PHP 8.4
  • Melhorias no AI Assistant
  • Suporte a xdebug_notify()
  • Interpretador de PHP do Laravel Herd

Suporte para PHP 8.4

O PhpStorm 2024.3 está cheio de novas inspeções e correções rápidas, para ajudar você a fazer uma atualização suave para os muitos novos recursos do PHP 8.4. Veja abaixo uma breve visão geral do suporte aos novos recursos do PHP 8.4 no seu fluxo de trabalho com o PhpStorm.

Hooks de propriedades

Os hooks de propriedades são uma das maiores alterações na história recente do PHP. Eles foram projetados para eliminarem getters e setters padronizados, permitindo que você implemente hooks get e set para propriedades.

O PhpStorm oferece os seguintes recursos para hooks de propriedades (incluindo aqueles localizados dentro de propriedades promovidas):

  • Uma correção rápida para substituir getters e setters por hooks de propriedades get e set.
  • Uma ação de intenção para adicionar hooks a propriedades.
  • Complementação de código para as palavras-chave get e set, inserindo os corpos dos hooks de propriedades.
  • A capacidade de gerar hooks get e set para uma propriedade, através de uma ação Generate semelhante a Generate | Getters and Setters.
  • Detecção automática de hooks de propriedades que podem ser convertidos para suas notações abreviadas e uma correção rápida para fazer essa conversão.
  • Verificações para garantir o uso da sintaxe e da lógica apropriadas para os hooks de propriedades.

Visibilidade assimétrica

A visibilidade assimétrica permite que se defina visibilidade separada para operações de leitura e gravação em propriedades com tipos.

O PhpStorm 2024.3 ajuda a garantir a implementação adequada de escopos de visibilidade assimétrica no seu código, fornecendo verificações e correções rápidas para:

  • Modificadores redundantes de visibilidade assimétrica.
  • Tentativas de tornar a visibilidade de set de uma propriedade mais ampla que a visibilidade principal (get).
  • Modificadores final redundantes em propriedades private (set).
  • Tentativas de estreitar a visibilidade de propriedades herdadas.
  • Tentativas de modificar uma propriedade de visibilidade assimétrica fora do escopo de visibilidade set.

Novas funções de arrays

Você pode usar o PhpStorm 2024.3 para converter loops foreach para as novas funções array_find(), array_find_key(), array_any() e array_all() do PHP 8.4.

new sem parênteses

O PhpStorm 2024.3 aceita que se omitam os parênteses em volta da expressão new em construções do tipo (new MyClass())->method().

AI Assistant  Plug-in

Observe que os recursos do JetBrains AI Assistant só estão disponíveis com uma assinatura do AI Pro ou na versão de avaliação.

Novo modelo da JetBrains para a complementação de código em PHP

Melhoramos significativamente a qualidade e reduzimos a latência da nossa complementação por IA de código em PHP. Essas melhorias são baseadas no Mellum, o novo modelo grande de linguagem (LLM) exclusivo da JetBrains, otimizado para complementação de código mais rápida, mais inteligente, mais sensível ao contexto e baseada na nuvem.

Para mais informações sobre o novo LLM da JetBrains, veja esta postagem no blog.

Realce de sintaxe no código sugerido

Agora as sugestões de complementação de código in-line têm realce de sintaxe, melhorando sua legibilidade.

Aceitação incremental de sugestões de código

Agora sugestões de código em múltiplas linhas podem ser aceitas todas de uma vez (teclando Tab) ou de forma incremental — palavra por palavra (Ctrl+→) ou linha a linha (End).

Prompts de IA in-line

Com os novos prompts de IA in-line, agora o AI Assistant detecta e processa solicitações em linguagem natural quando você as digita diretamente no editor. O AI Assistant interpreta as solicitações instantaneamente e sugere o código correspondente sem que você tenha que fazer mais nada.

O PhpStorm coloca uma marca roxa na medianiz junto às linhas alteradas pelo AI Assistant, para que você possa ver facilmente o que foi alterado. Se você não gostar de uma sugestão, poderá alterar o prompt inicial clicando no bloco roxo na medianiz ou teclando Ctrl+/.

Melhor gerenciamento do contexto

Nesta atualização, tornamos mais transparente e intuitivo o gerenciamento do contexto que o AI Assistant considera para dar suas sugestões. A interface de usuário foi reformulada e permite que você visualize e gerencie todos os elementos incluídos no contexto, proporcionando total visibilidade e controle. Agora o arquivo aberto e qualquer código selecionado dentro dele são adicionados automaticamente ao contexto, e você pode facilmente adicionar ou remover arquivos quando precisar, personalizando o contexto para se encaixar no seu fluxo de trabalho. Além disso, você pode anexar instruções globais de projeto para orientar as respostas do AI Assistant em toda a sua base de código.

Geração do título e da descrição de solicitações de pull e merge

O AI Assistant agora ajuda a gerar títulos e descrições precisos para suas solicitações de pull e merge diretamente do IDE, simplificando seu workflow e garantindo que suas descrições sejam claras e concisas.

Tratamento de erros de SQL pelo AI Assistant

Algumas novas ações úteis para lidar com erros na execução de consultas SQL com o AI Assistant podem ser acessadas na área de mensagens de erro. Explain with AI abre o chat de IA mostrando um prompt já enviado automaticamente e a resposta do AI Assistant explicando o erro. A ação Fix with AI gera uma correção para o erro de execução da consulta no editor.

Leia mais sobre todas as atualizações no JetBrains AI Assistant.

Depuração

Suporte a xdebug_notify()

Para melhorar ainda mais a sua experiência de depuração em PHP, agora o PhpStorm fornece uma maneira estruturada de tratar a saída enviada pela função xdebug_notify().

As chamadas a xdebug_notify() foram introduzidas no Xdebug 3.1 e permitem que você envie variáveis de forma seletiva para o console de depuração no PhpStorm.

Ecossistema do Laravel

Interpretador de PHP do Laravel Herd no PhpStorm

Para os desenvolvedores em Laravel que usam o Laravel Herd, agora o PhpStorm 2024.3 detecta automaticamente o caminho até o executável do PHP atualmente em uso pelo Laravel Herd na sua máquina. Para usar esse interpretador no PhpStorm, vá até as configurações do interpretador da interface de linha de comando ((PHP | CLI interpreter | ). Será aberto o diálogo CLI Interpreters. Nesse diálogo, selecione o executável do PHP na lista de opções pré-configuradas.

Melhorias para o framework Pest

O PhpStorm 2024.3 melhora significativamente a experiência dos desenvolvedores em Laravel com o framework de testes Pest. Implementamos o suporte total ao Pest 3.0 e a capacidade de executar testes paralelos e de mutação no Pest diretamente do IDE.

Testes de mutação com o Pest 3.0

O recém-lançado Pest 3.0 introduziu os testes de mutação, que fazem pequenas alterações no código para ver se os testes as detectam.

Você pode acionar a opção Run Tests (Pest) with Mutation no PhpStorm 2024.3 da mesma forma que para qualquer outra opção de teste — diretamente do editor, da janela de ferramentas Project ou através de uma configuração de execução/depuração — e usar a janela de ferramentas dedicada Pest Mutation para verificar os resultados do teste.

Só não deixe de se certificar de que o interpretador de PHP usado no seu IDE também tenha o Xdebug 3.0 ou mais recente instalado.

Para mais detalhes, consulte a documentação do PhpStorm.

Testes em paralelo com o Pest

No PhpStorm 2024.3, você não precisa mais passar para o terminal para executar testes do Pest no modo em paralelo. Basta navegar até o arquivo de teste e selecionar Run Tests (Pest) in Parallel a partir do ícone na medianiz do editor, do menu de contexto da janela de ferramentas Project ou através de uma configuração de execução/depuração.

Sistemas de controle de versão

Resolução de conflitos de merge de instruções de importação

Agora o PhpStorm pode resolver automaticamente conflitos de merge de instruções de importação. Para ativar este recurso, selecione a opção Resolve conflicts in import statements no diálogo de merge, abaixo do ícone da engrenagem, ou vá até Settings | Tools | Diff & Merge e selecione Automatically resolve conflicts in import statements.

Atualizações no Find in Files

O recurso Find in Files ganhou um novo escopo de pesquisa, Project Files Excluding Git-Ignored. Esta opção exclui dos resultados das suas pesquisas quaisquer arquivos que constem nos arquivos .gitignore, ajudando você a se concentrar apenas no código que for relevante ao fazer pesquisas no seu projeto.

Opção para desabilitar verificações pré-commit em segundo plano

Agora você pode gerenciar verificações em segundo plano durante o processo de commit com a nova opção Run advanced checks after a commit is done, em Settings | Version Control | Commit. Essa configuração permite decidir se testes e inspeções devem ser executados depois de você fazer um commit. Se quiser que essas verificações sejam concluídas antes do commit, basta desabilitá-las.

Nome do branch na tela Welcome

A tela Welcome agora mostra o nome do branch, o que ajuda a manter a organização ao lidar com várias versões do projeto e permite alternar facilmente entre os diretórios de trabalho.

Ferramentas de banco de dados

Introspecção de fragmentos e atualização inteligente para MySQL e MariaDB

Agora o PhpStorm permite a introspecção de fragmentos. Anteriormente, o agente de introspecção podia realizar apenas uma introspecção completa de esquemas nos bancos de dados MySQL ou MariaDB, mas não atualizar os metadados de um único objeto. Sempre que uma instrução DDL era executada no console e essa execução era capaz de modificar um objeto no esquema do banco de dados, o IDE iniciava uma introspecção completa de todo o esquema. Isso consumia muito tempo e frequentemente interrompia o workflow.

Agora o PhpStorm pode analisar uma instrução de DDL, determinar quais objetos podem ser afetados por ela e atualizar apenas esses objetos. Se você selecionar um único item no Database Explorer e chamar a ação Refresh, apenas um objeto será atualizado, em vez de todo o esquema, como era antes.

Inspeção de um número excessivo de cláusulas JOIN

Em certos casos, a execução de uma consulta que contenha um número excessivo de cláusulas JOIN não é recomendada devido à degradação do desempenho. O editor agora pode identificar e destacar essas consultas. É possível habilitar essa inspeção nas configurações do IDE. Para isso, navegue até Editor | Inspections, expanda a seção SQL e selecione Excessive JOIN count.

Barra de ferramentas de paginação flutuante

Para tornar a paginação da grade mais perceptível em nosso editor de dados, movemos o controle da barra de ferramentas para a parte inferior central do editor de dados.

Front-end

Resultados de pesquisa mais limpos em diretórios

Agora o PhpStorm exclui os resultados de node_modules como padrão ao usar Find in Files em diretórios de projetos, reduzindo a aglomeração causada por arquivos irrelevantes. Você pode restaurar o comportamento anterior habilitando a opção Search in library files when “Directory” is selected in Find in Files, em Settings | Advanced Settings.

Melhoria na navegação e renomeação de componentes de frameworks

Aprimoramos as dicas no editor para os componentes Vue, Svelte e Astro. Agora a ação Show component usages localiza usos em importações e modelos de marcação. Também adicionamos um filtro Show Component Usages para excluir usos de componentes ao pesquisar referências de arquivos regulares. A refatoração Rename também foi atualizada com uma opção para incluir usos ao renomear um arquivo de componente.

Visualização das cores de classes de CSS do Tailwind

Agora as cores das classes de CSS do Tailwind são exibidas in-line no editor, tornando mais fácil diferenciar as cores. Adicionamos o suporte ao método textDocument/documentColor do Language Server Protocol (LSP) e agora todos os plug-ins baseados em LSP oferecem esse recurso desde a instalação.

Melhorias para o Angular

Em projetos com o Angular 19, o WebStorm agora adota como padrão o modo stand-alone para componentes, diretivas e pipes. Correções rápidas foram adicionadas para ajudar na conversão entre componentes standalone e não standalone. Importações standalone não utilizadas podem ser removidas automaticamente durante a reformatação do código ou por meio de uma nova inspeção. O suporte à sintaxe @let também foi melhorado.

Interface do usuário

Realce para todas as ocorrências do texto selecionado

Agora, como padrão, o DataGrip realça automaticamente todas as ocorrências de um texto que você selecionar dentro de um arquivo. Isso facilita verificar onde o texto selecionado aparece em todo o seu código. Se você preferir o comportamento anterior, poderá desativar este recurso em Settings | Editor | General | Appearance.