O PhpStorm 2020.3 é uma atualização importante que apresenta suporte para PHP 8, PHPStan, Psalm, Tailwind CSS, Xdebug 3 e desenvolvimento colaborativo via Code With Me.
O PHP 8.0 é uma grande atualização da linguagem com muitos novos recursos incríveis. O PhpStorm ajudará você a verificar se o seu código existente é compatível com ele, atualizar sua base de código com mais rapidez e aproveitar as últimas melhorias na linguagem.
Agora, você sempre pode ver qual versão da linguagem está sendo usada em um projeto. Colocamos o indicador correspondente na barra de status. A partir de lá, você também poderá alterar a versão da linguagem se composer.json
não listar nenhuma restrição à versão do PHP.
Argumentos de função e método no PHP 8 podem ser transmitidos por meio da especificação de um nome de parâmetro. Isso dispensa a necessidade de definir parâmetros opcionais e significa que as chamadas agora são autodocumentadas.
O PhpStorm pode ajudar a:
Esse recurso permite reduzir a quantidade de código reutilizável ao inicializar variáveis por meio de um construtor.
No PhpStorm, você pode converter propriedades inicializadas pelo construtor em propriedades promovidas ou alterá-las novamente com a correção rápida Convert to promoted property Alt+Enter.
Em vez de ter que usar condições complicadas com verificações de nulos, o novo operador ?->
permite que você crie cadeias de chamadas com verificações implícitas de nulos para cada elemento.
O PhpStorm garante que o operador esteja sendo usado corretamente.
A nova expressão match
é uma alternativa compacta e segura de tipo à instrução switch
. Uma expressão match
pode ser usada como um valor e atribuída a uma variável ou retornada.
O PhpStorm determinará se um bloco switch
pode ser convertido em uma expressão match
e fará isso automaticamente com uma correção rápidaAlt + Enter.
Com a nova expressão, pode ser difícil ver usos incorretos. O PhpStorm os realçará para você.
No PHP 8, você pode usar a função str_contains()
para determinar se uma string faz parte de outra string. O PhpStorm 2020.3 chama sua atenção para qualquer uso de strpos()
que possa ser substituído por str_contains()
.
O PhpStorm também realça os locais em que chamadas substr()
antigas podem ser substituídas pelas novas e mais autoexplicativas funções str_starts_with()
e str_ends_with()
.
use
de fechamentos. ??
e no operador ternário/elvis ?:
). $object::class
em vez de get_class($object)
. Use uma correção rápida Alt+Enter para isso. O PHP 8 permite que você use atributos para especificar metadados de uma maneira estruturada em vez de depender de anotações PHPDoc.
O PhpStorm fornece realce, complementação de código, localização de usos, refatorações e outros tipos de assistência de codificação para trabalhar com atributos. Ele também tem inspeções para garantir que os atributos sejam declarados e usados de forma válida.
O PhpStorm 2020.3 acompanha vários atributos do PHP 8 disponíveis imediatamente no IDE. We also provide them in a composer package jetbrains/phpstorm-attributes, so feel free to add it as a dependency in composer.json
.
Como a tag PHPDoc @deprecated
, você pode usar esse atributo para marcar métodos, funções, classes ou constantes de classe que serão removidos em versões futuras do software.
Especifique reason
e replacement
para que seus usuários entendam por que precisam atualizar e possibilite que eles façam isso automaticamente com uma correção rápida Alt+Enter.
Use esse atributo para definir as chaves e os tipos de valores de matrizes semelhantes a objetos. Isso melhorará a assistência de codificação e a análise que você obtém com o PhpStorm.
Observação: se for escrito em uma linha, isso também funciona no PHP 7.4 e versões anteriores.
Marque objetos ou propriedades com o atributo #[Immutable]
quando quiser evitar qualquer tentativa de alterar o objeto após a sua inicialização.
Isso torna o estado do programa mais previsível e a depuração mais fácil.
Ajuste a restrição do escopo de gravação das propriedades com uma das seguintes constantes transmitidas ao construtor de atributo: CONSTRUCTOR_WRITE_SCOPE
, PRIVATE_WRITE_SCOPE
, PROTECTED_WRITE_SCOPE
.
Observação: se for escrito em uma linha, isso também funciona no PHP 7.4 e versões anteriores.
Marque funções que não produzem efeito colateral como #[Pure]
para melhorar a análise do fluxo de código no PhpStorm. O IDE realçará chamadas redundantes de funções puras.
Se você marcar uma função como #[Pure]
, mas, em seu corpo, houver uma tentativa de alterar algo do escopo externo, o PhpStorm realçará o código não seguro.
Todas essas funções internas do PHP, por exemplo, array_merge()
, já estão marcadas no PhpStorm.
Use esse atributo para especificar quais valores uma função aceita como parâmetros e quais ela pode retornar. Isso melhorará a complementação de código e ajudará a detectar possíveis bugs.
#[ExpectedValues]
é uma versão avançada de expectedArguments()
proveniente de .phpstorm.meta.php
.
Marque as funções que podem encerrar a execução de um script com um atributo #[NoReturn]
para obter uma análise de fluxo de controle mais precisa.
O PhpStorm se oferecerá para propagar o atributo para baixo na hierarquia com uma correção rápida para obter uma análise ainda mais bem definida.
Adicione esse atributo a parâmetros de string contendo texto em outra linguagem, como RegExp, SQL e assim por diante. Isso revelará recursos adicionais do PhpStorm.
Ambos os analisadores estáticos podem ser usados no PhpStorm 2020.3 como ferramentas de primeira classe para realçar problemas no editor. Adicione-os como dev-dependencies em composer.json
e ative a inspeção correspondente clicando em um ícone de chave inglesa próximo à ferramenta.
O PhpStorm também fornece complementação de código para tags @psalm-*
e as trata como especiais. Portanto, não haverá problemas com realce, classes indefinidas e assim por diante. Na maioria dos casos, agora é seguro remover o prefixo @psalm-
de tags. Ou seja, @psalm-return
pode simplesmente ser @return
e @psalm-param
pode ser @param
.
Muitos tipos de psalm têm suporte, incluindo escalar, numérico e tipos com constantes. Consequentemente, tudo o que depende da inferência de tipos tornou-se mais preciso: inspeções, geração de código e complementação.
O Xdebug 3 é um novo retrabalho do depurador PHP. Ele funciona muito mais rápido e é mais fácil de configurar.
Para configurar o Xdebug 3, a única coisa que você precisa especificar é XDEBUG_MODE=debug
.
A porta de depuração padrão para o Xdebug foi alterada de 9000 para 9003. Para facilitar a migração, o PhpStorm escuta ambas as portas por padrão. A porta e outras configurações do Xdebug podem ser ajustadas em Preferences/Settings | Languages & Frameworks | PHP | Debug.
Learn more about Xdebug 3 in the Upgrade Guide.
O PhpStorm 2020.3 oferece suporte ao Code With Me, um novo serviço da JetBrains para desenvolvimento colaborativo e programação em pares. Com o Code With Me, você pode compartilhar o projeto que está aberto no momento no seu IDE com outras pessoas e todos trabalham nele em tempo real.
Confira estes posts para saber mais sobre o Code With Me.
Agora, o PhpStorm pode ajudar você a trabalhar com o Tailwind CSS de maneira muito mais produtiva.
O IDE complementará automaticamente suas classes Tailwind, mostrará uma visualização do CSS resultante quando você passar o mouse e oferecerá suporte às personalizações que você fizer usando arquivos tailwind.config.js
.
Guzzle is one of the most popular HTTP clients for PHP. No PhpStorm 2020.3, você pode testar solicitações Guzzle sem executar o código real.
Se a solicitação for compatível, haverá um ícone de medianiz ao lado dela. Clique nesse ícone para criar um novo arquivo de trabalho HTTP
com os parâmetros previamente preenchidos.
Experimente a solicitação e salve-a como um arquivo .http
no seu projeto.
Para obter uma string cURL de uma solicitação HTTP, pressione Alt+Enter no editor de solicitações HTTP e selecione Convert to cURL and copy to clipboard.
Você pode usar a string cURL no terminal ou com a sua escolha de cliente HTTP.
Diagramas Mermaid.js e gráficos agora podem ser renderizados dentro do IDE. Habilite esse suporte em Preferences/Settings | Languages & Frameworks | Markdown.
Há um botão Auto-Scroll Preview no canto superior direito do painel de visualização que ativa e desativa a rolagem síncrona com o editor.
Adicionamos várias predefinições de estilos de código Markdown que funcionam quando você reformata o código com Ctrl+Alt+L. Essas configurações estão em Preferences/Settings | Editor | Code Style | Markdown.
O mecanismo de verificação gramatical oferece suporte a mais idiomas e oferece verificações gramaticais de mais alta qualidade.
Quando um erro for realçado, haverá um pop-up com uma explicação e uma sugestão de correção.
Se você pressionar Alt+Enter com um cursor sobre o texto realçado, verá todas as substituições sugeridas no nível superior, em vez de uma lista aninhada como antes.
Abra várias guias lado a lado arrastando uma guia até o lado desejado da tela.
Outra maneira de abrir guias no modo dividido é pressionar Shift+Enter em um arquivo selecionado na exibição Project ou em qualquer janela de pesquisa.
Você pode visualizar arquivos em uma guia especial sem realmente abri-los. Para habilitar esse recurso, clique no ícone de engrenagem na exibição Project e selecione Enable Preview Tab e Open Files with Single Click. Se você começar a editar um arquivo que está visualizando, a guia se tornará um arquivo comum.
No pop-up Search Everywhere (Shift+Shift), os resultados serão mostrados de uma maneira ligeiramente diferente. Em vez de serem agrupados por tipo, agora eles serão agrupados com base em sua relevância para a consulta de pesquisa.
Agora, também é possível realizar cálculos matemáticos simples no Search Everywhere. Digite alguns números e operadores matemáticos e veja os resultados do cálculo imediatamente. Isso elimina a necessidade de mudar para um aplicativo de calculadora e interromper seu fluxo.
O Search Everywhere também pode pesquisar no histórico do Git, incluindo informações sobre branches e submissões.
Todos os novos recursos e melhorias do WebStorm 2020.3 também estão disponíveis no PhpStorm 2020.3, prontos para uso ou com plug-ins gratuitos no Plugin Marketplace.
Integramos o serviço de linguagem TypeScript à janela de ferramentas Problems e removemos a janela de ferramentas TypeScript, para facilitar a análise dos problemas no seu código em um só lugar. Também movemos as ações anteriormente disponíveis na janela de ferramentas TypeScript para um widget dedicado na barra de status.
Se você tiver um componente React não resolvido no seu código, coloque o sinal de intercalação sobre ele, pressione Alt+Enter e selecione "Create class/function component from the list". O IDE criará o construto de código relevante para você.
O PhpStorm 2020.3 vem com suporte para a área de preparação Git. Para ativá-lo, marque a caixa de seleção Enable staging area em Preferences/Settings | Version Control | Git.
Volte para a janela de ferramentas Commit usando Alt + 0 para ver os arquivos preparados e não preparados.
Prepare arquivos clicando no ícone + ao lado deles.
Você pode preparar linhas específicas usando o ícone de medianiz próximo às alterações no editor.
Confira as Novidades no DataGrip 2020.3 - todos esses recursos estão disponíveis no PhpStorm também.
Agora, você pode usar o SQL para consultar bancos de dados MongoDB. PhpStorm 2020.3 supports SELECT
queries with clauses such as JOIN
, WHERE
, GROUP BY
, HAVING
, ORDER BY
, LIMIT
, OFFSET
, and all available MongoDB functions except map, reduce, filter, and let. Se quiser saber mais sobre o SQL para MongoDB, leia este post de blog.
Agora, o PhpStorm oferece suporte ao serviço Couchbase Query. Também introduzimos dois novos extratores: One-Row, que permite copiar uma coluna para uma string separada por vírgulas, e SQL-Insert-Multirow, que gera uma única instrução INSERT
com várias novas linhas a serem inseridas.