Suporte a Tipos de União PHP 8, novo mecanismo de fluxo de controle para PHP, refatoração Extract Class, suporte completo para solicitações pull do GitHub, novo Widget de Inspeções e suporte para OpenAPI.
Começamos a implementar o suporte ao PHP 8 com o suporte para Tipos de União. No PHP 8.0, será possível declarar mais de um tipo para propriedades, argumentos e tipos de retorno. O PhpStorm já oferece suporte total para esse recurso e pode ajudá-lo a migrar efetivamente.
Tipos de união costumavam ser fornecidos via PHPDoc, e agora o PhpStorm realça essas ocorrências.
Com a correção rápida Alt+Enter, eles agora podem ser convertidos em tipos de união nativos.
Isso funciona em qualquer lugar em que os tipos de união sejam aplicáveis, incluindo argumentos de função, tipos de retorno e propriedades. Para propriedades, ele também leva em consideração os valores padrão.
Para habilitar os recursos relacionados ao PHP 8, alterne o nível da linguagem para PHP 8 de uma das seguintes maneiras:
composer.json
, e o PhpStorm o buscará automaticamente.O PhpStorm analisa chamadas, calcula tipos possíveis e realça áreas problemáticas relacionadas a tipos de união.
As verificações funcionam em todos os níveis: propriedades, argumentos e valores de retorno.
Em bases de código complexas, ele ajuda a ver os problemas à primeira vista. O PhpStorm realçará lugares que exigem atenção antes mesmo de o código ser executado.
Existem muitas combinações de tipos que são proibidas ou redundantes. Por exemplo:
bool|false
Foo|Foo
object|User
iterable|array
ou iterable|Traversable
Todos eles são realçados pelo PhpStorm como inválidos.
Quando existe um único tipo anulável, é permitido usar a notação ?Type
ou Type|null
no PHP 8.
Porém, quando há vários tipos combinados com nulo, é proibido usar ?Type1|Type2
como ambíguo.
O PhpStorm realça essas violações e fornece uma correção rápida Alt+Enter para convertê-las.
Durante a herança, o PHP permitirá modificar tipos se você seguir essas regras básicas:
Felizmente, com o PhpStorm, não há necessidade de lembrar essas regras, pois ele verificará o código e realçará as violações.
No PHP 8, haverá um pseudótipo false
especial que pode ser usado apenas em declarações de tipo de união.
Ele é amplamente utilizado na biblioteca padrão, consulte strpos()
ou array_search()
, por exemplo, e pode ser aplicado em outro lugar para indicar um resultado negativo.
O PhpStorm realça usos incorretos e leva a inferência de tipo em consideração.
Após adicionar uma declaração de tipo de união nativa, um PHPDoc pode se tornar desnecessário, pois não fornece informações extras.
Agora, você pode removê-lo com uma correção rápida Alt+Enter.
O PhpStorm agora pode analisar caminhos de código complexos e detectar se a condição em um bloco if-else
faz sentido ou é redundante.
Semelhante a condições, o PhpStorm é capaz de detectar quando as verificações instanceof
são apropriadas ou se elas sempre são avaliadas como verdadeiras devido ao tipo inferido na hierarquia de tipos.
Essa nova ação permite que você veja o tipo inferido de qualquer expressão selecionada.
Ao codificar, você pode selecionar uma expressão e verificar seu tipo usando o atalho Ctrl+Shift+P ou o menu View | Type Info.
O PhpStorm pode detectar quando é garantido que a variável seja apenas null
. Nesse caso, o IDE sugere simplificar a expressão para torná-la mais clara.
ruleset.xml
do PHP_CodeSniffer’s tiver uma seção "exclude-pattern"
, o PhpStorm agora levará isso em consideração e não analisará os arquivos no caminho especificado. O gerenciamento de dependências do Composer pode ser feito no editor diretamente dentro do arquivo composer.json.
Se houver fontes personalizadas especificadas na seção “repositories”
, você obterá a complementação dos pacotes personalizados.
Agora, existe um ícone de medianiz que mostra o estado atual do armazenamento em cache de repositórios personalizados.
Quando um pacote possui várias versões separadas por vírgula ou barras verticais (||
), o PhpStorm fornece a complementação de todas as versões disponíveis para esse pacote.
Antes, era comum perder a complementação depois de digitar ~
, ^
ou >=
. Porém, isso agora funciona como esperado com qualquer uma dessas restrições de intervalo em composer.json.
O PhpStorm fornece muitas integrações com ferramentas de terceiros. Agora, se uma ferramenta com suporte for declarada em composer.json, haverá um ícone de chave inglesa na medianiz ao lado dela. Você pode clicar nele para ir diretamente a seção correspondente de preferências.
Se uma classe fica sobrecarregada e obstruída com muitas responsabilidades adicionais, agora é possível refatorá-la movendo métodos e propriedades para uma nova classe com a refatoração Extract Class.
Selecione uma função, método ou propriedade que deseja mover e pressione Ctrl+T e selecione Extract class.
A refatoração criará um novo arquivo, instanciará um objeto da classe no construtor e ajustará os usos automaticamente.
Suporte para interpretadores remotos agora está disponível para ferramentas de linha de comando do PHP.
Em Preferences/Settings | Tools | Command Line Tool Support,, adicione uma nova entrada de ferramenta e escolha um dos interpretadorws remotos configurados.
O Laravel Artisan agora será detectado automaticamente! Isso significa que, quando você abre um projeto Laravel, pode pressionar Ctrl-Ctrl e começar a digitar um comando. O PhpStorm fornecerá a complementação e sugerirá os comandos disponíveis.
Se houver um array declarado e atualizado em algum lugar do código, mas ele nunca for lido, significa que é muito provável que o array seja redundante e adicione ruído ao código.
A inspeção detecta esses casos e solicita que você remova o array para tornar o código mais limpo.
Se uma propriedade tipada não tiver um valor padrão, ela será considerada não inicializada. A leitura de propriedades não inicializadas gerará um TypeError
(a menos que o __get()
mágico esteja definido).
O PhpStorm detecta propriedades não inicializadas e relça o código que tenta lê-las.
Todo o workflow de solicitações pull agora pode ser realizado no PhpStorm, e não é mais necessário mudar para um navegador. Você pode gerenciar solicitações pull, ver a linha do tempo e os comentários inline, adicionar comentários e revisões e aceitar alterações.
Para começar a trabalhar com solicitações de extração do GitHub, abra a janela da ferramenta Pull Requests na barra de ferramentas ou no menu principal VCS | Git | View Pull Requests.
Em seguida, selecione uma solicitação pull na lista para visualizar todos os seus detalhes: a mensagem, nomes de branches, autor e assim por diante.
A partir daqui, você pode iniciar o processo de revisão verificando os arquivos alterados e comentando as alterações - em nível de submissão e de linha.
Também é possível mesclar solicitações pull sem sair do IDE. Não há necessidade de criar um branch local a partir de uma solicitação pull, tudo funciona imediatamente.
O PhpStorm 2020.2 oferece suporte ao plug-in OpenAPI Specifications. Este é um plug-in gratuito desenvolvido pela JetBrains que fornece complementação, navegação e validação nos arquivos de especificação do OpenAPI (openapi.yaml/openapi.json e swagger.yaml/swagger.json).
O plug-in também fornece:
No canto superior direito do editor, você verá o novo Widget de Inspeções com um resumo dos problemas no arquivo atual.
Todos os novos recursos e melhorias do WebStorm 2020.2 estão disponíveis no PhpStorm 2020.2, para uso imediato ou com plug-ins gratuitos disponíveis no Plugin Marketplace.
Deseja usar o Prettier em vez do formatador incorporado para organizar seu código? Com essa atualização, isso ficou ainda mais fácil do que antes. Basta marcar a nova caixa de seleção On code reformat, e o IDE usará o Prettier sempre que você reformatar seus arquivos .js, .ts, .jsx e .tsx. Outros tipos de arquivos também podem ser facilmente adicionados.
Suporte para Nuxt.js, configurações de estilo de código específicas do Vue, melhorias no Vue em projetos TypeScript e muitas outras coisas que adicionamos no ano passado. O suporte ao Vue no PhpStorm nunca foi tão avançado!
As novas intenções inteligentes Alt+Enter ajudarão você a executar algumas ações mais rapidamente. Por exemplo, agora, você pode converter rapidamente um loop for com um índice numérico em um método de array forEach
. Examinar os comentários da documentação nos arquivos JavaScript e TypeScript também ficou mais fácil, pois agora você pode renderizá-los diretamente no editor, minimizando as distrações.
O PhpStorm 2020.2 oferece suporte ao Git instalado no WSL 2 para trabalhar com projetos localizados nos sistemas de arquivos Linux e Windows.
O IDE pode alternar entre os executáveis do Git, dependendo da localização do projeto. Quando um projeto for aberto a partir do WSL (via \\wsl$
path), o IDE mudará automaticamente para o Git a partir do WSL e também fornecerá a capacidade de usar todos os recursos relacionados ao Git no IDE.
Quando você deseja comparar dois branches para ver quais submissões não pertencem uma à outra, o PhpStorm 2020.2 mostrará os logs no editor em vez de na janela de ferramentas Git. Isso garantirá que haja espaço suficiente para exibir todas as informações.
Escolha a ação "Compare with Current" no menu pop-up Git Branches VCS | Branches.
Agora, você pode remover facilmente submissões locais redundantes selecionando-as na guia Log da janela de ferramentas Git e escolhendo Drop Commit no menu de contexto.
Também é possível combinar várias submissões locais em uma única submissão, por exemplo, para limpar o histórico antes de fazer um push.
Na janela de ferramentas Git, selecione submissões e escolha Squash Commits… no menu de contexto.
O IDE executará uma recuperação interativa nos bastidores.
Confira as Novidades no DataGrip 2020.2 – todos esses recursos estão disponíveis no PhpStorm também.
Agora, se você tiver um valor enorme na sua célula, ele poderá ser visualizado ou editado em um painel separado. Também é possível alternar o modo de quebra automática de linha usando a barra de ferramentas à direita. Use todo o poder do nosso editor de código para os seus dados.
Adicionamos um novo dialeto SQL: Google BigQuery. O suporte total para o BigQuery ainda não está aqui, mas tudo deve começar em algum lugar. O PhpStorm poderá realçar e fornecer assistência de codificação corretamente para suas consultas se você usar o Google BigQuery.
Você pode revisar a consulta que representa suas alterações no editor de dados. Existe um botão DML que ficará ativo se houver alterações pendentes. Essa consulta não é o SQL exato que será executado para modificar seus dados, pois o PhpStorm usa um driver JDBC para atualizar tabelas, mas, na maioria das vezes, será o mesmo.