Novidades no PhpStorm 2021.2

O PhpStorm 2021.2 é uma atualização de grande porte que introduz suporte preliminar para elementos genéricos em PHP, enumerações no PHP 8.1, anotações array shape de uma linha e formatação automática aprimorada do código PHP, bem como novas inspeções e refatorações.

Elementos genéricos para PHP

No momento, o PHP não oferece suporte para elementos genéricos em nível de linguagem, mas seu uso por meio de anotações já se tornou bastante popular. Eles tornam o código mais seguro e previsível ao trabalhar com coleções, contêineres, factories e outras aplicações.

Elementos genéricos para PHP

Adicionamos suporte para elementos genéricos por meio da anotação @template. Isso torna o trabalho com coleções mais simples em muitos casos, pois as sugestões conterão elementos do tipo esperado.

Para padrões factory, agora você pode usar a anotação class-string<T> e obterá uma complementação de código melhor.

Esse suporte preliminar para elementos genéricos não é abrangente e tem limitações conhecidas. Para saber mais sobre isso, leia esta postagem do nosso blog.

Enumerações do PHP 8.1

A expectativa é de que a nova versão 8.1 do interpretador PHP seja lançada no final de 2021. Mas, como sempre, estamos começando a implantar o suporte desde o início.

Um dos recursos mais esperados do lançamento do PHP 8.1 são as enumerações.

Com o PhpStorm 2021.2, você pode começar a usar enumerações imediatamente. O IDE oferece sugestões de código e validação para evitar que você as use incorretamente.

Uma enumeração no PHP contém um conjunto de casos, pode ter métodos e pode ser usada como uma dica de tipo: em todos esses casos, o PhpStorm fornecerá realce de erros e sugestões adequadas para economizar seu tempo.

Backed Enums

Casos de enumeração podem ter equivalentes escalares. Isso é útil se você precisar salvar uma enumeração em um data store. Essas enumerações são conhecidas como backed enums.

Com uma correção rápida, você pode adicionar uma declaração de tipo escalar a um backed enum.

Enumerações também funcionam bem com outros recursos, como condições e expressões de correspondência.

Saiba mais

Array shapes

Array shapes

Se houver arrays semelhantes a objetos no seu código, agora você pode definir sua estrutura com esta anotação PHPDoc: array{key: type, key: type, ...}.

O PhpStorm fornece complementação de código para esses arrays anotados, reduzindo assim o tempo gasto na digitação de rotina e evitando que você cometa erros.

O suporte está limitado a definições de array shape de uma linha. Para estruturas maiores, geralmente é melhor usar objetos e classes reais.

Melhoria na refatoração de extração de método

Uma das refatorações do PhpStorm mais usadas, Extract Method, ficou ainda melhor.

Ela permite que você divida métodos grandes em unidades menores e também elimina código duplicado.

Para usar esta refatoração, selecione qualquer parte do código e pressione ⌘⌥M (Cmd+Alt+M / Ctrl+Alt+M).

Refatoração de código duplicado

O PhpStorm tem uma inspeção Duplicated code fragment. Ela realça todos os fragmentos de código que são muito semelhantes. A formatação, os nomes de variáveis e a ordem das instruções podem ser diferentes, desde que o resultado final seja o mesmo.

Essa inspeção realça as primeiras linhas de fragmentos duplicados. Agora, você pode refatorar rapidamente esse código pressionando Alt+Enter na linha realçada e invocando a refatoração Extract Method na correção rápida do código duplicado.

O PhpStorm também pode localizar duplicatas de fragmentos de código menores no escopo atual (método, classe ou arquivo) durante a refatoração. Selecione um fragmento de código e chame a refatoração com ⌘⌥M (Cmd+Alt+M / Ctrl+Alt+M). Você verá a caixa de seleção Review and replace duplicates na parte inferior da caixa de diálogo.

Novo seletor inteligente para fragmentos de código

Novo seletor inteligente para fragmentos de código

Você também pode chamar a refatoração Extract Method sem selecionar código. Nesse caso, o PhpStorm sugere uma lista de possíveis fragmentos de código. As sugestões são filtradas e contêm apenas os segmentos que faz sentido refatorar.

Melhorias ao expandir uma seleção

Você provavelmente já sabe que pode selecionar um trecho de código com a ação Expand/Shrink selection ⌥+para cima / ⌥+para baixo (Ctrl+W / Ctrl+Shift+W). Esta é uma das maneiras mais rápidas de selecionar código para refatoração.

Este lançamento apresenta uma atualização pequena, mas bastante útil: a capacidade de selecionar blocos sem caracteres de chave.

A refatoração Extract Method inclui ainda mais melhorias. Confira todos os detalhes nesta postagem do blog.

Inspeções e correções rápidas

Cada versão vem com um monte de inspeções para reduzir o tempo que você perde procurando bugs e corrigindo-os. Pressione Alt+Enter em qualquer código realçado no PhpStorm para aplicar uma correção.

A condição pode ser substituída por `?->`

A condição pode ser substituída por `?->`

Substitua as verificações de nulo desnecessárias pelo novo operador seguro do PHP 8. Pressione Alt+Enter para realizar a transformação.

Usar a constante de uma classe no local em que ela está definida

Usar a constante de uma classe no local em que ela está definida

O PhpStorm realçará constantes que são acessadas por meio de subclasse ou subinterface em vez da entidade na qual a constante está definida. Substitua o nome da entidade por aquela na qual a constante está definida, usando a correção rápida Alt+Enter.

Condições redundantes em expressões lógicas

Condições redundantes em expressões lógicas

Agora, o PhpStorm avalia partes de condições para identificar redundâncias. Isso pode ser útil quando as verificações não são óbvias, e você não consegue dizer quais são redundantes apenas ao observá-las.

Inspeções de oportunidades de refatoração

Adicionamos um novo grupo de inspeções na seção PHP de Settings / Preferences | Editor | Inspections.

Esse grupo inclui inspeções que podem ajudar a identificar bons candidatos para refatoração. Essas inspeções estão desabilitadas por padrão, mas, mesmo nesse estado desabilitado, você verá um ícone de medianiz adicional próximo ao código que elas detectam (em vez do código sublinhado no editor).

Clicar no ícone de medianiz invocará a refatoração sugerida.

Essas inspeções são combinações de várias métricas de qualidade de código: complexidade ciclomática, profundidade de aninhamento, número de variáveis usadas, número total de linhas e muitas outras.

Você pode encontrar a lista de métricas usadas na descrição de cada inspeção.

Saiba mais

IDE

Executar testes antes da submissão

Executar testes antes da submissão

Expandimos a lista de possíveis ações pré-submissão, com a capacidade de executar testes. Marque a caixa de seleção Run Tests e selecione a configuração a ser executada. É útil fazer uma verificação do código antes que ele esteja no VCS.

Agora, você também pode personalizar as opções Analyze code e Cleanup clicando em Choose profile ao lado delas.

Ações ao salvar

Ações ao salvar

Adicionamos uma nova página de configuração em Preferences / Settings | Tools | Actions on Save.

Lá você encontrará uma lista de ações que podem ser acionadas com Ctrl + S ou no salvamento automático implícito. Essas ações incluem verificações de código, reformatação, limpeza de código, implantação e muitas outras.

“Show Diff” unificada

“Show Diff” unificada

Por padrão, o PhpStorm abrirá uma comparação de diferenças entre os arquivos iniciais e alterados no editor, não importa onde você tenha chamado a ação Show Diff. Se o controle de alterações em uma janela separada for mais conveniente para você, basta arrastar e soltar o arquivo desejado do editor.

Pesquisa de texto nas revisões de Local History

Pesquisa de texto nas revisões de Local History

O recurso Local History tem sido o herói anônimo de muitos desenvolvedores e agora foi aprimorado para permitir que você encontre rapidamente o texto necessário em revisões locais usando o campo de pesquisa na caixa de diálogo Local History.

Pesquisa de texto nas revisões de Local History

Assinatura GPG

O PhpStorm 2021.2 oferece uma nova maneira de proteger suas submissões. Agora, você pode habilitar a assinatura de submissões do Git com o GPG. Basta acessar Settings | Version Control | Git e clicar em Configure GPG Key na lista suspensa.

UI traduzida

UI traduzida para os idiomas chinês, japonês e coreano

Começando nesta versão, você pode aproveitar a UI do PhpStorm totalmente traduzida nos idiomas chinês, coreano e japonês. A tradução está disponível como plug-ins de pacote de idiomas não incluso, que pode ser facilmente instalado no seu IDE*. Mais de 1,5 milhões de usuários começaram a usar a versão EAP parcialmente traduzida dos nossos pacotes de idiomas. Agora, você pode aproveitar a experiência completa de tradução!

Tecnologias Web

Todos os novos recursos e melhorias do WebStorm 2021.1 também estão disponíveis no PhpStorm 2021.2, prontos para uso ou com plug-ins gratuitos no Plugin Marketplace.

Refatoração Rename em hooks useState do React

Refatoração Rename em hooks useState do React

Agora, o PhpStorm pode renomear os valores e funções de useState. Posicione o cursor em um valor de estado e pressione ⇧F6/Shift+F6 ou acesse Refactor | Rename no menu de contexto ativado com o botão direito do mouse.

Importação automática para require()

Importação automática para require()

Agora, o PhpStorm pode adicionar declarações de importação ausentes quando você usa a complementação de código ao trabalhar com módulos CommonJS.

Ferramentas de banco de dados

Confira as Novidades no DataGrip 2021.2 - todos esses recursos estão disponíveis no PhpStorm também. Eis aqui algumas delas.

Fonte de dados DDL

Fonte de dados DDL

Agora, é possível gerar uma fonte de dados DDL com base em uma real. Os arquivos DDL serão criados no disco, e a nova fonte de dados será baseada neles. Dessa maneira, você sempre poderá gerar novamente esses arquivos e atualizar a fonte de dados DDL.

Complementação de campos e operadores para MongoDB

Complementação de campos e operadores para MongoDB

Nossa complementação de código agora está no console do MongoDB.

Outras melhorias

Aqui estão apenas algumas das muitas melhorias e aprimoramentos adicionais no PhpStorm 2021.2:

  • Visualize arquivos HTML e PHP em um navegador usando o servidor Web incorporado do PhpStorm. Agora, o PhpStorm pode recarregar automaticamente as páginas abertas ao salvar.
  • Ficou mais fácil reorganizar janelas de ferramentas. Passe o mouse sobre a parte superior da janela de ferramentas que você deseja mover e, em seguida, arraste-a e solte-a onde quiser.
  • O PhpStorm limpa automaticamente todos os diretórios de caches e logs que foram atualizados pela última vez há mais de 180 dias. Você também pode limpar manualmente em Help | Delete Leftover IDE Directories.
  • Novas opções de terminal foram adicionadas para definir uma forma do cursor e para usar Option como uma metatecla.
  • Uma nova página Advanced settings que fornece opções para o ajuste detalhado do PhpStorm foi adicionada em Preferences.
  • A velocidade dos uploads de FTP foi significativamente melhorada para coleções grandes de arquivos.
  • Suporte adicionado para parâmetros de níveis em dirname().
  • Resolvidos todos os problemas pendentes com a formatação do código PHP.