Novidades no PhpStorm 2023.3

Os destaques dessa importante atualização incluem:

  • O AI Assistant já saiu da versão prévia
  • Suporte para o Pest
  • Suporte para PHP 8.3
  • Suporte reforçado para o Symfony
  • Melhorias de qualidade na UI

O AI Assistant já saiu da versão prévia Disponibilidade Geral

O AI Assistant da JetBrains agora está disponível ao público com uma série de recursos novos e aprimorados para aumentar sua produtividade nos IDEs da JetBrains.

Complementação de código baseado em LLM

Complementação de código baseado em LLM

O AI Assistant agora pode gerar blocos de código com várias linhas para você. Basta começar a digitar uma nova linha e, se uma sugestão de LLM estiver disponível, um snippet de código esmaecido aparecerá. Pressione Tab para aceitar a sugestão.

Atualmente, essas sugestões estão disponíveis em contextos de classes ou definições de funções.

Geração de código de teste

Geração de código de teste

O AI Assistant também pode gerar testes para métodos de classes. Com o cursor colocado no método de classe que você deseja abranger com testes unitários, basta pressionar Alt+Enter, selecionar AI Assistant e escolher Generate Unit Tests.

Geração de código no editor

Geração de código no editor

Anteriormente, você podia usar o chat de AI para gerar snippets de código. Agora, existe uma ação AI Assistant | Generate code… que abre um prompt dentro do editor. Você será solicitado a inserir uma descrição do código que deseja gerar. Depois de fazer isso, o AI Assistant fornecerá sugestões, e você poderá aceitar todas ou parte delas.

Explicações de erros baseadas em IA no console

Explicações de erros baseadas em IA no console

Às vezes, quando você executa um script PHP ou uma configuração de execução, ou quando executa uma ação do Composer, o trabalho falha por algum motivo. O AI Assistant pode ajudar você a determinar a causa raiz do problema. Clique no botão Explain with AI em um rastreamento de pilha ou mensagem de erro para obter uma explicação gerada por IA.

Use o AI Assistant no PhpStorm como recurso complementar com uma assinatura do JetBrains AI Service.

Atualizações do Pest

PhpStorm now supports the Pest test framework out of the box. We recently agreed with the original author of the Pest plugin to take over its development and bundle it in PhpStorm. You can read the details in our recent blog post.

Testes do Pest

Assim como os testes do PHPUnit, os testes do Pest agora podem ser executados diretamente no PhpStorm. Quando você coloca o cursor dentro de um teste e aciona a janela de execução, uma configuração de execução é criada para esse teste específico. Você pode posicionar o cursor no arquivo, mas não dentro de qualquer teste específico, para acionar todos os testes nesse arquivo.

Asserções

Com o novo suporte ao Pest, você pode escrever asserções chamando funções ou métodos em $this. Ele também melhora a complementação automática em funções de teste, para que você possa ver quais asserções estão disponíveis enquanto digita.

Expectativas personalizadas

No Pest, você pode escrever expectativas personalizadas para reduzir verificações estereotipadas nos seus testes. O PhpStorm pode ajudar a encontrar usos de expectativas personalizadas e a renomeá-las.

Suporte para PHP 8.3

O PhpStorm 2023.3 vem com suporte completo para PHP 8.3. A maioria das alterações no IDE será integrada organicamente ao seu workflow do PhpStorm sem que você perceba, então mencionaremos apenas os novos recursos que você precisa conhecer para se beneficiar delas.

Atributo Override

Atributo #[\Override]

O PHP 8.3 introduz o novo atributo #[\Override]. Ele pode ser usado para mostrar explicitamente sua intenção ao sobrescrever um método. O mecanismo PHP é capaz de verificar se um método marcado com #[\Override] realmente substitui o método pai, lançando uma exceção se esse não for o caso. O PhpStorm 2023.3 avisa com antecedência sobre esses casos.

Sugestão para adicionar o atributo Override

O PhpStorm também sugere adicionar o atributo #[\Override] quando aplicável.

Função json_validate() Função json_validate()

Nova função json_validate()

O PHP 8.3 adiciona a nova função json_validate() à biblioteca padrão. Antes, a única maneira de validar se uma string era válida em JSON era decodificá-la e detectar se algum erro era gerado. O PhpStorm pode detectar esses padrões e sugerir sua substituição por uma chamada de função json_validate(). Isso pode ser benéfico se você precisa apenas saber se a entrada é válida em JSON, pois usa menos memória em comparação à decodificação da string.

Constantes de classe tipadas

Constantes de classe tipadas

No PHP 8.3, você pode declarar tipos para constantes de classes. Todas as declarações de tipo podem ser usadas, exceto void, callable e never.

Para constantes de classe tipadas, o PhpStorm fornece:

  • Sugestões para inserir os tipos apropriados
  • Complementação de dicas de tipo
  • Verificações de compatibilidade com o tipo do valor padrão
  • Digite verificações de redeclaração ao substituir uma constante em uma classe filha
Descontinuações Descontinuações

Descontinuações

O PHP 8.3 introduz algumas descontinuações, e o PhpStorm oferece inspeções correspondentes para identificá-las.

Suporte para Symfony

O PhpStorm 2023.3 traz várias melhorias para desenvolvedores Symfony.

Assistente New Project

Assistente New Project

Um novo inicializador de projeto incorporado para Symfony permite que você crie novos projetos do Symfony com os tipos e versões desejados diretamente na tela Welcome.

Suporte à Doctrine Query Language no QueryBuilder

Suporte à linguagem de consulta Doctrine no QueryBuilder

Agora, você pode aproveitar o suporte completo do IDE para DQL dentro de chamadas de método do QueryBuilder. Os recursos incluem realce, complementação de campos, capacidade de resolução para a classe de modelo de destino e muito mais.

Conversão de anotações em atributos para o Symfony e o Doctrine

Conversão de anotações em atributos para o Symfony e o Doctrine

Following the introduction of attributes in PHP 8.0, Doctrine annotations are being deprecated and will soon be removed. Para ajudar você a fazer a mudança, o PhpStorm 2023.3 inclui funcionalidade para converter anotações do Doctrine em atributos.

O PhpStorm também oferece suporte para a conversão de anotações do Symfony em seus atributos correspondentes, como #[Required], #[Route] e assim por diante.

Outras atualizações para PHP

Opção para excluir arquivos de biblioteca externa do seu projeto

Opção para excluir arquivos de biblioteca externa do seu projeto

Como um novo recurso experimental, também adicionamos a capacidade de excluir diretórios provenientes de bibliotecas indexadas. Excluir esses arquivos do seu projeto ajudará você a evitar problemas de definições múltiplas e a melhorar o desempenho da indexação.

Estilização dedicada de tipos genéricos

Estilização dedicada de tipos genéricos

Continuamos trabalhando para melhorar a experiência de uso de genéricos. No PhpStorm 2023.3, agora é possível configurar a codificação por cores de genéricos, facilitando a distinção entre tipos genéricos.

Capacidade de recolher atributos PHP multilinha

Capacidade de dobrar atributos PHP de várias linhas

Com o aumento da adoção de atributos, às vezes pode ser difícil ler um código anotado com longos atributos de múltiplas linhas de um determinado framework. No PhpStorm 2023.3, isso não deve mais ser um problema, já que agora você pode recolher atributos multilinhas.

Conversão de metadados PHPUnit de PHPDoc em atributos

Conversão de metadados PHPUnit de PHPDoc em atributos

PHPUnit 10 introduced support for attributes for adding metadata to test classes and test methods, as well as tested code units. Implementamos uma inspeção e uma solução rápida que ajudará você a migrar das antigas anotações PHPDoc para esse novo estilo.

Sistemas de controle de versão

O visualizador diff completo

O PhpStorm 2023.3 apresenta uma maneira renovada de revisar alterações. Agora, em vez de passar por cada arquivo um por um, você pode ver todos os arquivos modificados de um conjunto de alterações em um único quadro rolável. Esse novo visualizador de diferenças pode ser acessado na janela da ferramenta Git Log e funciona atualmente com análises do JetBrains Space. Estamos trabalhando para torná-lo compatível com GitLab e GitHub.

Depurador

Depurador

A nova opção embutida Run to Cursor do PhpStorm 2023.3 permite que você execute rapidamente até uma linha específica de código durante a depuração. Depois que seu programa for suspenso, você poderá passar o mouse sobre a linha de código que deseja executar e usar o pop-up Run to Cursor. O mesmo pode ser feito invocando o atalho de teclado Alt + F9 após colocar o cursor na linha desejada.

Interface do usuário

Opção para ocultar a barra de ferramentas principal no modo de visualização padrão

Opção para ocultar a barra de ferramentas principal no modo de visualização padrão

Em resposta aos seus comentários sobre a nova UI, tornamos possível ocultar a barra de ferramentas principal ao usar o modo de visualização padrão do IDE, assim como na UI antiga. Para remover a barra de ferramentas, selecione View | Appearance e desmarque a opção Toolbar.

Opção para reverter para o layout padrão da janela de ferramentas

Opção para reverter para o layout padrão da janela de ferramentas

Com o lançamento do PhpStorm 2023.1, introduzimos a capacidade de salvar vários layouts de janelas de ferramentas e alternar entre eles, melhorando a personalização do seu espaço de trabalho. No PhpStorm 2023.3, estamos expandindo essa funcionalidade com a introdução da opção Layout padrão, que fornece uma maneira rápida de reverter a aparência do seu espaço de trabalho para o estado padrão. Esse layout não é personalizável e pode ser acessado via Window | Layouts.

Abas do editor codificadas por cores por padrão

Guias do editor codificadas por cores por padrão

Para facilitar o trabalho com vários tipos de arquivos no editor ao mesmo tempo, introduzimos a codificação por cores nas abas do editor por padrão, refletindo sua aparência na janela de ferramentas Project.

Aprimoramentos no TypeScript

Aprimoramentos no TypeScript

Repleto de recursos do WebStorm, o PhpStorm agora resolve algumas das inconsistências frustrantes que ocorrem ao adicionar instruções do tipo import type e facilita o trabalho com verbatimModuleSyntax. Adicionamos a opção de configurar o tipo de instrução TypeScript import type. Também melhoramos o comportamento do campo exports de package.json para arquivos TypeScript.

Fechamento de tag única HTML para JSX

Atualizações de HTML

Agora, quando você cola o código HTML em um arquivo JSX, o PhpStorm não apenas converterá atributos, como também fechará automaticamente tags únicas para você. Você pode configurar essa opção em Settings | Editor | General | Smart Keys | JavaScript.

Suporte para @property em CSS personalizado

Aprimoramentos de CSS

To support the new @property API for creating custom CSS properties, PhpStorm 2023.3 now offers inspections and completion features for explicitly defining CSS custom properties, allowing you to check and restrict property types, establish default values, and determine inheritance possibilities for custom properties.

Melhorias para o Vue 3

Melhorias para o Vue 3

Adicionamos suporte para defineSlots, fornecendo complementação e navegação para o nome do slot, bem como a refatoração Rename. Também introduzimos suporte para complementação de propriedades com defineExpose. No PhpStorm 2023.3, as importações necessárias para componentes serão adicionadas com base no nome especificado pela função defineOptions.