Novidades do PhpStorm 2022.3

O PhpStorm 2022.3 é uma atualização principal que inclui a nova prévia da UI, suporte para PHP 8.2, Code Vision para PHP, a visualização de correção rápida, suporte para ParaTest, a exibição renderizada para PHPDoc, Redis nas ferramentas de banco de dados e muito mais.

Prévia Nova interface do usuário

A UI nova em folha está disponível para todos experimentarem. Ela está desativada por padrão porque ainda está no estágio Beta/Prévia.

Você pode alternar para a nova interface em Settings/Preferences | Appearance & Behavior | New UI Preview.

A nova UI é mais limpa, tem menos distrações e funciona mais rápido, permitindo que você faça a maioria das coisas da maneira que está acostumado.

Experiência do usuário

Nesta versão, você encontrará muitas melhorias visuais adicionais. Aqui estão algumas das mais notáveis.

Code Vision

Bem no editor, ao lado do código PHP, você pode ver informações adicionais sobre símbolos PHP: classe, trait, interface, método ou função.

Você verá o número de usos – não é necessário clicar em um símbolo para descobrir.

Para classes e interfaces, você verá o número de herdeiros e implementações, respectivamente.

Você também obterá informações do Git sobre quem fez mais alterações em um determinado trecho de código, permitindo ver rapidamente quem é o proprietário do código e quem tem mais conhecimento especializado sobre essa parte do código.

Prévia de correções rápidas

É possível corrigir alguns problemas de código automaticamente pressionando Alt+Enter.

Agora, você poderá visualizar a solução rápida ou intenção proposta antes de aplicá-la e ver instantaneamente como seu código será alterado.

Visualização renderizada de PHPDoc

Agora, você pode alterar a aparência dos blocos PHPDoc no PhpStorm 2022.3 com uma opção que fornece uma renderização com melhor aparência e suporte para formatação HTML. Isto facilita e torna mais agradável a leitura de códigos com muitas anotações.

Para alternar a nova visualização renderizada, clique no ícone de medianiz Rendered view gutter icon próximo a qualquer bloco PHPDoc.

Para ativar a renderização de todos os comentários PHPDoc, clique com o botão direito do mouse no ícone de medianiz e escolha Render All Doc Comments.

Documentação rápida aprimorada

Se você pressionar Ctrl+Q em qualquer função, classe ou método, o PhpStorm mostrará a documentação diretamente no editor.

Este pop-up foi significativamente reformulado. Agora, você não precisa mudar para o navegador para pesquisar documentação, porque tudo é acessível diretamente no seu IDE.

PHP 8.2

O PhpStorm 2022.3 vem com suporte completo para PHP 8.2. A maioria das alterações no IDE se ajustará organicamente ao workflow do PhpStorm e, portanto, mencionaremos apenas os novos recursos que você precisa conhecer.

Classes readonly

Uma classe readonly é uma forma rápida de declarar uma classe que possui apenas propriedades somente leitura. Você pode usar essas classes para integridade de dados adicional.

Para classes readonly, o PhpStorm fornece:

  • Uma correção rápida para converter uma classe com propriedades readonly numa classe readonly.
  • Uma inspeção para garantir que classes readonly só possam ter filhos readonly.
  • Detecção de propriedades somente leitura redundantes em classes readonly.
  • Verifica propriedades estáticas e dinâmicas proibidas em classes somente leitura.

Propriedades dinâmicas deprecadas

Acessar propriedades inexistentes no PHP 8.2 causará um aviso de deprecação.

O PhpStorm destaca esses usos e fornece correções rápidas para os erros, seja adicionando a propriedade ou usando o atributo #[AllowDynamicProperties].

Melhorias no sistema de tipos

O PHP 8.2 adiciona suporte para tipos de formulário normais disjuntivos, bem como para tipos autônomos null, true e false. Também adicionamos suporte para todos eles no PhpStorm.

Mais deprecações

O PHP 8.2 apresenta mais algumas deprecações, e o PhpStorm oferece as inspeções correspondentes para identificá-las e correções rápidas para atualizar seu código.

Interpolação de strings ${} deprecada

Antes, se você precisasse usar uma variável dentro de uma string, havia três maneiras possíveis de interpolação. Uma delas agora está marcada como deprecada e será removida no futuro.

O PhpStorm realçará as ocorrências, e você poderá usar uma correção rápida Alt+Enter para fazer upgrade do código.

Elementos chamáveis com suporte parcial deprecados

Várias formas de chamar funções foram deprecadas no PHP 8.2.

O PhpStorm realça o código inválido, e você pode usar uma correção rápida Alt+Enter para atualizar seu código.

O PhpStorm pode escanear toda a sua base de código de uma só vez para detectar todos os problemas possíveis. Acesse Code | Analyze Code | Run Inspection by Name. Em seguida, procure "propriedade dinâmica", por exemplo, e o PhpStorm fará o resto.

Bancos de dados: suporte para Redis

Foi implementada uma iteração preliminar do tão esperado suporte para Redis.

Depuração

Se você está tendo problemas para configurar o Xdebug, eis aqui algumas coisas que podem ser feitas agora no PhpStorm para identificar o problema.

Validar a saída de phpinfo()

Adicione uma chamada phpinfo() ao seu script ou página PHP e copie a saída da função visível no navegador. Em seguida, chame Run / Web Server Debug Validation. Você verá uma caixa de diálogo que permite colar a saída de phpinfo() da etapa anterior.

O PhpStorm analisará a configuração do servidor e detectará os problemas mais comuns.

Verificar a configuração do servidor com um script

If the phpinfo() information didn’t help, you can use PhpStorm’s validation script on the server.

Depuração de valores de retorno com Xdebug

O Xdebug 3.2 tem uma etapa extra de depuração "return from function" (retorno de função) que permite inspecionar o valor de retorno.

O PhpStorm 2022.3 oferece suporte a esse novo recurso. Para acioná-lo, pressione "Step Into" quando estiver na última instrução da função. Como resultado, uma variável adicional será mostrada em Watches.

Integração com ferramentas PHP

Executar testes em paralelo com ParaTest

O tão esperado suporte para testes paralelos no PhpStorm finalmente chegou!

Para executar testes em paralelo, você precisa marcar a opção Use Paratest na configuração de execução dos seus testes e verificar se o caminho para o binário ParaTest está definido corretamente. Normalmente, se você tiver ParaTest adicionado em seu composer.json, o caminho deverá ser algo como: ./vendor/bin/paratest_for_phpstorm.

Usar formatadores externos para PHP

Agora, é possível escolher um formatador externo em Preferences | PHP | Quality Tools. You can now use FriendsOfPHP/PHP-CS-Fixer or squizlabs/PHP_CodeSniffer for this purpose.

Integração com o Robo

A popular task runner for PHP, Robo, received the following extended support:

  • Uma janela de ferramenta especial de tarefas do Robo está disponível quando uma classe Robo estiver presente no projeto.
  • Uma configuração em execução para executar tarefas do Robo está disponível no menu de contexto e é invocada de um método Robo.
  • Cada método público dentro de uma classe Robo possui um ícone de medianiz para as respectivas configurações.

Suporte para o Prophecy

If you use the Prophecy mocking framework in your tests, working with it in PhpStorm will now be easier.

Mais recursos para PHP

Prévia do formato de data e hora

Você não precisa mais se lembrar ou procurar formatos date(). O PhpStorm 2022.3 mostra uma dica de ferramentas com uma data de exemplo quando o mouse passa sobre uma string de formato de data.

Além disso, ao editar uma string de formato de data, você terá complementação automática com dicas para todos os caracteres reconhecidos como parâmetros de formato.

Suporta iterações sobre array shapes em listas

Support for array shape annotations was added in PhpStorm 2021.2, then in 2022.1, we added multiline and nested syntax support for array shapes.

A parte final que faltava é fornecida no PhpStorm 2022.3: você obterá complementação de código total para itens de array shape em loops.

Nova solução Settings Sync

Mesclamos duas soluções de sincronização antigas (IDE Settings Sync e Settings Repository) numa única: a nova Settings Sync. Ela permite que você sincronize configurações de maneira confiável em diferentes máquinas e IDEs.

Se você não estava usando uma solução de sincronização de configurações antes, mas deseja experimentar a nova, pode habilitá-la em Settings / Preferences | Settings Sync | Enable Settings Sync.

Docker

Executável do Docker do WSL sem o Docker Desktop

Você pode configurar esse tipo de conexão em Settings / Preferences | Build, Execution, Deployment | Docker.

Nova ação de contexto: Pull image

Chame as ações de contexto (Alt-Enter) no nome da imagem realçada e selecione Pull Docker image para extrair uma imagem necessária sem executá-la do Dockerfile, docker-compose.yml ou até mesmo de testes usando Testcontainers.

Suporte para o tipo de arquivo .dockerignore

Obtenha realce e complementação em arquivos .dockerignore.

Suporte para o formato heredoc em arquivos Dockerfile

Use scripts multilinhas diretamente em seus Dockerfiles.

Conexões do Docker a partir de contextos Docker

Set up additional Docker connections using Docker Contexts by calling the Add Service context menu in the Services view and selecting Docker Connections From Docker Contexts.

Cliente HTTP

Formatar solicitações longas no cliente HTTP

O cliente HTTP agora oferece melhores opções de formatação para solicitações com URLs longas. Você também pode usar a ação de contexto Put query parameters on separate lines para dividir a consulta em fragmentos menores em linhas diferentes.

Scripts pré-solicitação

O Cliente HTTP agora oferece suporte a blocos de script executados antes das solicitações. Você pode gerar alguns dados antes da execução da solicitação e transmiti-los para a solicitação subsequente usando variáveis.

Novas APIs para handlers JavaScript

O PhpStorm agora fornece a API сrypto, tornando-a capaz de calcular os valores de hash md5 ou sha1 para uma solicitação HTTP.

Agora, há mais funções aleatórias disponíveis, o que é conveniente para testes rápidos de API.

Desenvolvimento Web

Novos modelos de projeto para Next.js e Vite

Novos modelos de projeto para Next.js e Vite

O assistente New Project disponível na tela Welcome do PhpStorm agora inclui modelos de projeto para Vite e Next.js. Também atualizamos o modelo de projeto para Vue para garantir que ele siga os padrões mais recentes.

Code Vision para JavaScript e TypeScript

Code Vision para JavaScript e TypeScript

As dicas embutidas do Code Vision agora também funcionam para JavaScript e TypeScript. Essas dicas facilitarão o rastreamento dos usos de várias classes, métodos, aliases de tipo e interfaces no seu código.

Atualizações do Vue

Atualizações do Vue

O PhpStorm agora pode cuidar de importações não resolvidas e oferecerá sugestões para importar componentes Vue. Também oferecemos suporte à sintaxe de desestruturação de props, melhoramos o comportamento de complementação de código e verificação de tipos para props de componentes da biblioteca Vue e corrigimos vários problemas com o Nuxt 3.

Suporte para Vitest

Suporte para Vitest

PhpStorm now supports Vitest, a Vite-native unit test framework! Você pode executar, reexecutar e depurar seus testes de todas as principais maneiras esperadas, inclusive por meio de ícones de medianiz. Além disso, o modo watch está habilitado com o cenário All tests por padrão. Também há suporte para testes e cobertura de snapshots no modo de observação, fornecendo feedback quase instantâneo sobre a cobertura durante a programação.


Essas são as mudanças mais importantes neste lançamento, mas é claro que há muitas outras: Confira o anúncio de lançamento no blog do PhpStorm para obter a lista completa de melhorias nesta versão.