O PhpStorm 2022.1 é uma atualização ampla que traz o suporte array shapes aninhados e multilinha, refatoração Extract Method no próprio local, suporte melhorado a modelos do Blade, WordPress, genéricos no PHP e muito mais.
O suporte a formas de array em blocos PHPDoc existe desde o PhpStorm 2021.2. Porém, eram suportadas apenas anotações de nível único e em uma única linha.
No PhpStorm 2022.1, adicionamos suporte total a formas de array aninhados e de multilinha no PHPDoc e no atributo #[ArrayShape].
Adicione anotações array shape para obter complementação de código para as chaves e inferir os tipos de valores em estruturas de dados de arrays simples ou arrays semelhantes a objetos. Você pode usar tanto a sintaxe do PHPDoc quanto a dos atributos no PhpStorm, como preferir. A sintaxe tem suporte para tipos de retorno e de parâmetro.
Extract Method é uma das refatorações mais usadas no PhpStorm. Para simplificar o código e criar um novo método, basta selecionar o trecho de código e pressionar ⌘⌥M (Cmd+Alt+M / Ctrl+Alt+M).
Antes, isso abria um diálogo para a configuração da refatoração, mas ninguém gosta de pop-ups. Então agora, em muitos casos você pode usar a refatoração no próprio local como alternativa para extrair um método.
Não aparecerá mais uma caixa de diálogo e um novo método (ou função) será criado imediatamente no editor. O cursor ficará ativo para editar o nome do novo método.
Antes, o PhpStorm tratava cada bloco de código nos modelos do Blade como um escopo independente. Isso constumava causar problemas com complementações de código e insights.
No PhpStorm 2022.1, reformulamos significativamente a forma como o IDE manipula modelos do Blade. O resultado é que você obterá uma complementação de código muito melhor nos seus arquivos .blade.php
.
Também foram resolvidos muitos outros problemas com a complementação de código e a formatação em modelos do Blade. Saiba mais.
No PhpStorm, você pode dar um ⌘+clique (Ctrl+click) nos caminhos de arquivos para abrir os arquivos correspondentes no editor. Porém, isso não funcionava para caminhos dinâmicos no código do WordPress quando esses caminhos estavam associados a funções do WordPress.
Nesta versão, adicionamos o suporte à função get_template_directory_uri()
em caminhos. Haverá suporte a mais funções nas próximas atualizações.
O sistema de hooks do WordPress é poderoso, mas não era possível saltar do ponto de onde um hook foi invocado para aquele onde o handler é declarado.
Agora há um ícone de medianiz à esquerda de uma invocação. Clique nele para ver uma lista de usos de hooks, incluindo o registro e outras invocações.
Como você sabe, além de ter a capacidade embutida de "perceber o código", o PhpStorm também tem conhecimento externo do código. Esse conhecimento vem na forma do arquivo .phpstorm.meta.php. Você pode usá-lo para ensinar mais a respeito da base de código ao PhpStorm, o que resulta em uma complementação melhorada.
Se você precisasse usar os métodos mágicos _call
e _callStatic
, você perderia a complementação de código para esses métodos, porque eles não são definidos.
Nesta versão, você pode adicionar o item correspondente de metadados e obter complementação automática para essas chamadas.
Você pode até manipular chamadas dinâmicas automaticamente, recebendo o nome específico de um método em um valor de parâmetro.
Agora, você pode especificar tipos de união como @|MyClass
em .phpstorm.meta.php. Isso pode melhorar a assistência para codificação em simulações.
Saiba mais sobre outros recursos de metadados na documentação.
Continuamos melhorando nosso suporte a genéricos baseados em anotações no PhpStorm. Nesta versão, cobrimos mais alguns casos, incluindo, mas não somente:
@psalm-import-type
, @phpstan-import-type
@psalm-trace
, @phpstan-trace
@method
Agora, ao criar um novo projeto vazio, você tem a opção de gerar automaticamente um arquivo composer.json
para ele e informar as dependências desejadas. Depois que o projeto for criado, o PhpStorm solicitará que você as instale.
Substituímos a instância Event Log com uma nova janela de ferramentas Notifications. Isto ajudará você a ter uma melhor visão geral das notificações do IDE e diminuirá as chances de deixar de perceber algo importante. A nova janela de ferramentas está localizada como padrão no canto inferior direito da janela do IDE. Todas as notificações vêm em uma de duas categorias: Suggestions e Timeline.
Invoque Structural Search and Replace a partir do menu principal com Edit | Find | Search Structurally…
Reformulamos a caixa de diálogo Structural Search and Replace para apresentar uma lista de todos os modelos, para tornar mais fácil a navegação entre eles.
Também adicionamos um ícone Pin Dialog no canto superior direito do diálogo Structural Search and Replace.
Agora você pode distribuir uniformemente o espaço de trabalho entre as abas do editor para que elas tenham todas a mesma largura. Habilite Settings / Preferences | Advanced Settings | Editor Tabs | Equalize proportions in nested splits.
Agora, é possível exportar diagramas UML como arquivos .graphml do yEd, .drawio do JGraph, .dot do Graphviz, .md do Mermaid e .uml do Plantuml e IntelliJ IDEA, tornando-os compatíveis com ferramentas de terceiros.
Arquivos README costumam descrever as etapas necessárias para executar um aplicativo e listar os comandos que você precisa usar. O PhpStorm 2022.1 permite que você execute esses comandos diretamente do arquivo Markdown. Basta clicar no ícone Run na medianiz à esquerda do comando.
Também adicionamos uma ação Copy code snippet aos blocos Markdown, para que você possa copiar rapidamente o conteúdo dos blocos para a área de transferência.
Reformulamos a barra de ferramentas flutuante que aparece na seleção de texto, para facilitar a formatação de arquivos Markdown. Além do novo design, a barra de ferramentas agora permite que você crie listas e tem um menu para selecionar estilos de cabeçalho.
A barra de ferramentas é personalizável, para que você possa preenchê-la com as opções de que mais precisar. Vá para Settings / Preferences | Appearance & Behavior | Menus and Toolbars | Markdown Editor Floating Toolbar.
Aprimoramos a funcionalidade do recurso Annotate with Git Blame para facilitar a investigação das alterações introduzidas. O IDE realça as diferenças entre as linhas diretamente no editor quando você passa o mouse sobre uma anotação e abre a janela de ferramentas Git Log quando você clica na anotação.
Ficou mais fácil trabalhar com alterações sugeridas no PhpStorm, pois agora você pode aplicar ou submeter alterações localmente, no próprio IDE.
O painel Commit Details agora inclui informações sobre assinaturas GPG e status de builds. Antes, esses dados eram mostrados apenas como uma coluna no log do Git.
A nova interface do usuário para a janela de ferramentas Git File History agora é independente do processo de indexação. Os dados são representados com uma nova interface, mesmo que o índice Log esteja desativado.
Estas são as mudanças mais importantes nesta versão. Se você quiser dar uma olhada melhor em todos os pequenos detalhes e outras melhorias legais que implementamos, confira o comunicado da versão no blog do PhpStorm.