PhpStorm 2021.1: visualizações de arquivos PHP e HTML, mais de 20 novas inspeções e programação em par com o código comigo





Temos o prazer de apresentar a você o primeiro grande lançamento do PhpStorm este ano! Abaixo do corte está uma análise detalhada de todas as mudanças e novos recursos.



PHP



  • PHP- HTML- PHP.

  • 20 PHP.

  • , PHP, — Settings / Preferences.

  • PHP composer.json.

  • SQL, RegExp . . .

  • SQL- CMS.

  • .



IDE



  • Split .

  • JSONPath JSON-.

  • JSON Lines.

  • Preferences | Editor | Font.



Docker



  • Dockerfile.

  • Dockerfile.



Version Control



  • - GitHub — IDE .



Code With Me



  • A nova ferramenta de programação de pares da JetBrains está disponível para usuários do PhpStorm gratuitamente. Code With Me oferece co-programação em tempo real, chamadas de áudio e vídeo integradas e mensagens instantâneas.





Você pode baixar o PhpStorm 2021.1 no site ou no aplicativo Toolbox .



Isso é breve e agora mais sobre tudo.



PHP



Seleção da versão do PHP via barra de status



Na versão anterior, adicionamos o indicador de versão do PHP na barra de status. Em 2021.1, a versão pode ser alterada independentemente da especificada no composer.json



. Isso permitirá, por exemplo, verificar rapidamente a compatibilidade do código com as versões mais recentes do PHP.









Encontre facilmente as configurações de PHP



A maioria das configurações relacionadas ao PHP agora estão disponíveis em Configurações / Preferências | PHP .









Visualize arquivos PHP e HTML no editor



Quando você passa o mouse sobre qualquer lugar no editor, uma janela pop-up com ícones do navegador é exibida no canto superior direito. Ao clicar no ícone, o arquivo atual será aberto no navegador selecionado.



Agora também há um ícone PhpStorm aqui. Ao clicar nele, o arquivo será aberto para visualização direto no editor.



A visualização funciona em arquivos HTML e PHP, bem como em todos os arquivos CSS e JavaScript associados.







Abra o arquivo e comece a digitar - a guia de visualização mostrará instantaneamente todas as alterações.



PhpStorm usa um interpretador PHP local que pode ser especificado para o projeto em Configurações / Preferências | PHP... Docker e outros intérpretes não locais ainda não são suportados.



Se não houver ícones no editor, certifique-se de que em Preferências | Ferramentas | Navegadores da Web , pelo menos um navegador está selecionado e a caixa de seleção Para arquivos HTML está marcada .



Você também pode abrir a guia de visualização pressionando Alt + F2.





Usando prefixo de tabela em consultas SQL



Muitos CMS e estruturas permitem tabelas de prefixação. Isso pode ser útil ao usar o mesmo banco de dados para vários aplicativos.



Anteriormente, a integração com ferramentas de banco de dados era perdida porque os nomes das tabelas eram gerados dinamicamente.



Agora você pode especificar o prefixo no arquivo .phpstorm.meta.php . Você pode ler mais sobre meta- arquivos e como especificar prefixos de tabela na página de ajuda .



Digamos que temos a seguinte solicitação em um aplicativo Drupal:











Como você pode ver, PhpStorm não pode resolver o nome da tabela ou os nomes das colunas. Isso ocorre porque especificamos o prefixo da tabela na configuração do Drupal.



Para corrigir isso, adicione um arquivo .phpstorm.meta.php



com o seguinte conteúdo ao projeto :



namespace PHPSTORM_META {
 override(
  //       SQL-
   sql_injection_subst(),
   map([
     '{' => "PS2021_", //  `{`   SQL    
     '}' => '',       //   `}`    
   ]));
}
      
      







Agora o PhpStorm será capaz de vincular consultas SQL a fontes de dados e fornecer recursos como preenchimento automático, transição para visualização de dados e muito mais.







A propósito, se a solicitação for formada por meio de concatenação, isso também funcionará:



<?php
const DB_PREFIX = "mydatabase_";
$sql = "SELECT * FROM " . DB_PREFIX . 'table_name';
      
      







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



Nesta versão, adicionamos mais de 20 verificações e correções rápidas diferentes para ajudar a evitar erros nos estágios iniciais de desenvolvimento. Você pode ver a lista completa de inspeções e configurá-las em Configurações / Preferências | Editor | Inspeções .



Quando ocorrer um problema, passe o mouse sobre ele, pressione Alt + Enter e selecione a solução rápida sugerida.



E agora mais sobre algumas das novas inspeções.



Simplificando blocos `if` com os mesmos corpos



Alguns blocos if



e else



pode ser redundante. Por exemplo, você pode alterá-los, fazendo com que seus corpos sejam total ou parcialmente iguais.



O PhpStorm detectará esses blocos extras e se oferecerá para removê-los:











Além disso, se apenas uma parte do corpo for repetida, o PhpStorm se oferecerá para extraí-los:







Inversão de `if`



Se você pressionar Alt + Enter para qualquer um if



, será solicitado o comando “Invert` if`” . Ele inverte a condição e faz os ajustes necessários para preservar a lógica.



Se você gosta de usar o retorno antecipado , essa inspeção será muito útil ao refatorar seu código.



Por exemplo :







Em loops, isso também funciona:





Substituindo `isset` por ??



O código isset($a) ? $a : $b;



é idêntico $a ?? $b



, então PhpStorm irá destacá-lo e sugerir uma solução rápida para substituição.







, —  , .



Code | Run Inspection by Name... , `isset` can be replaced with coalesce. .



`isset` `!== null`



O uso isset()



só faz sentido para matrizes e variáveis. Em todos os outros casos, é melhor verificar o operando para null



.



PhpStorm irá destacar esses lugares e permitir que você substitua com Alt + Enter isset()



com null



.







A variável em `foreach` substitui a variável já declarada



Variáveis ​​para chave e valor no loop foreach



podem entrar em conflito com os nomes de outras variáveis ​​ou parâmetros.



O problema é que o PHP não tem um escopo separado para eles. Ou seja, o valor será anulado - provavelmente ao contrário das expectativas.



O PhpStorm destacará esses locais porque são fontes potenciais de bugs.







Chaves desnecessárias para variáveis ​​dentro de strings



PhpStorm destaca chaves redundantes no contexto de interpolação de string, solicitando que você as remova e torne seu código mais limpo.







Simplificando Expressões Booleanas



Se a expressão booleana contiver literais true



ou false



, provavelmente ela poderá ser simplificada e tornada mais legível.



O PhpStorm destacará tais expressões e permitirá que você as simplifique usando Alt + Enter.







Comparação estrita com tipos incompatíveis



O operador ===



sempre retornará false



se os operandos não forem do mesmo tipo.







O PhpStorm agora destaca esses lugares porque eles podem ser fontes de bugs. Ao mesmo tempo, PhpStorm levará em consideração todos os tipos deduzidos e o ajudará a encontrar problemas nos casos não mais óbvios.







Links inseguros http: //



O uso do protocolo http://



em linhas agora está destacado. O IDE oferece uma solução rápida para substituição rápida http://



para https://



(por Alt-Enter). Você também pode usá-lo para adicionar um URL à lista de links ignorados.







Combinações de nomes suspeitos



PhpStorm destaca alguns erros comuns na nomenclatura de parâmetros ou valores de retorno, como $needle



e $haystack



ou $x



e $y



.



Normalmente, esses erros são um sintoma de um bug ou, pelo menos, são muito confusos.







Substituindo `define` por` const`



PhpStorm detecta casos onde uma declaração constante via define



pode ser substituída por uma sintaxe mais legível const



. Com Alt + Enter, você pode fazer uma substituição.







Configurando inspeções de pré-confirmação



Agora você pode selecionar um perfil de inspeção a ser usado para analisar seu código antes de se comprometer com o Git.



Clique no ícone de engrenagem, marque a caixa de seleção Analyze code , clique em Configure e selecione o perfil desejado.







Você pode criar seus próprios perfis em Configurações / Preferências | Editor | Inspeções .



Outro



Escopo artificial para refatoração



Ciclos foreach



, for



, while



e os blocos catch



em PHP não são isolados escopo. Isso é bastante inconveniente quando você renomeia variáveis, porque também renomeia variáveis ​​fora do bloco desejado.



No PhpStorm 2021.1, adicionamos um escopo artificial para todos esses blocos. Agora, ao chamar a refatoração Renomear (Shift + F6), a renomeação será mais intuitiva.









Melhorando a injeção automática na língua



As versões anteriores do PhpStorm eram capazes de definir o idioma apenas para argumentos. Por exemplo, se você passou uma string para uma função preg_*



, ela foi destacada como uma expressão regular.



Mas se você usou uma variável, seu valor não foi realçado de forma alguma.



PhpStorm 2021.1 analisa o uso de variáveis ​​e é capaz de implementar automaticamente a sintaxe desejada.









Usando extensões do bloco `Suggest` em composer.json



A base de código pode conter classes de extensões PHP. Até agora, o PhpStorm verificou se essas extensões foram adicionadas às seções require



do arquivo composer.json



.



O PhpStorm 2021.1 leva em consideração a especificação de extensões não apenas na seção `require`, mas também na seção` Suggest`.



Mais importante, PhpStorm agora avisa se uma extensão foi adicionado ao suggest



no composer.json



, mas é usado sem verificações de tipo extension_loaded()



ou function_exists()



.



Uma solução rápida especial permitirá que você adicione uma extensão para require/require-dev.











Correções importantes



Consertamos mais de 2.400 tickets abertos por nossos usuários e pela equipe JetBrains no rastreador PhpStorm. Alguns dos mais interessantes são:

  • WSL 2 Docker (WI-53396).

  • Quality tools docker-compose exec- (WI-55840).

  • PHP (5000 ) (WI-31569).

  • (WI-58306).





Code With Me



Code With Me é a nova ferramenta de desenvolvimento colaborativo e programação em pares da JetBrains. Nós o introduzimos originalmente no PhpStorm 2020.3. A ferramenta foi muito melhorada nesta versão.







Em primeiro lugar, tornou-se possível definir de forma flexível os direitos de acesso para os cúmplices.



Em segundo lugar, agora os convidados nem precisam instalar um IDE - basta executar um comando de console e o cliente gratuito será baixado automaticamente.



Em terceiro lugar, foram adicionadas chamadas de voz e vídeo integradas, bem como um mensageiro.



Enterprise Teams e outras equipes de segurança agora podem executar seu servidor Code With Me em uma rede privada.



Leia mais sobre Code With Me no site da JetBrains .



IDE



Expansão de guias no modo dividido



Você pode abrir várias guias ao mesmo tempo no modo Dividir, simplesmente arrastando a guia para o canto desejado da tela.



Agora você também pode clicar duas vezes em uma guia para expandi-la totalmente. Você também pode retornar a guia ao estado anterior clicando duas vezes.









Suporte JSONPath



Agora você pode usar consultas JSONPath para pesquisar rapidamente grandes documentos JSON. O recurso está disponível na seção Editar | Encontre | Avalie JSONPath .









Suporte para linhas JSON



PhpStorm agora suporta o formato JSON Lines para trabalhar com dados estruturados e logs. O IDE reconhece arquivos .jsonl , .jslines , .ldjson e .ndjson .









Configurações de tipografia



Você pode variar as fontes principais e alternativas. Novas opções estão disponíveis nas Configurações de Tipografia em Configurações / Preferências | Editor | Fontes .







Docker



Conclusão de nomes de imagem no Dockerfile



Comece digitando o nome da imagem e o PhpStorm oferecerá a você uma lista de imagens disponíveis no Docker Hub:







Dobrar em Dockerfiles de vários estágios



Ao usar várias seções em um Dockerfile, FROM



você pode recolher qualquer uma delas e elas serão separadas por uma linha para melhor legibilidade.







Cancelar execução do Docker



Você pode interromper facilmente a execução de um Dockerfile em execução na janela Serviços . Selecione Parar implantação no menu de contexto para o item iniciado.





Melhorias para solicitações pull do GitHub



Para criar um rekvest de pool, basta clicar no "+" na janela Pull Requests ou ir para Git | GitHub | Criar solicitação de pull .



Na caixa de diálogo atualizada, você pode:



  • Visualize os arquivos modificados na guia Arquivos.

  • Edite nomes e descrições de solicitações pull, atribua revisores e executores, adicione tags.

  • Crie solicitações de pull de rascunho.









PhpStorm 2021.1 também oferece suporte a modelos de solicitação pull. Adicione um arquivo pull_requst_template.md



ao projeto e especifique o texto do modelo nele - e toda vez que você criar uma nova solicitação pull, essa descrição será preenchida automaticamente.



Suporte de modelo para commits Git



O PhpStorm agora respeita o modelo especificado no parâmetro de commit.template



configuração do Git ao criar uma mensagem de confirmação .



Cliente HTTP



Suporte SSL



Agora você pode especificar as configurações de SSL no cliente HTTP. Clique no botão Adicionar arquivo de ambiente e selecione Privado . Arquivo será criado no qual você pode especificar as configurações de SSL: clientCertificate



, hasCertificatePassphrase



, clientCertificateKey



, verifyHostCertificate



.









Melhorias para OpenAPI / Swagger



PhpStorm tem suporte para especificações OpenAPI e interface de usuário Swagger embutida.



Agora Swagger UI suporta especificações com arquivos externos conectados via $ref



.







Ferramentas DB





PhpStorm inclui recursos internos de DataGrip : uma interface de permissões , templates contextuais Live Templates, navegação simplificada e muito mais. Leia mais sobre esses recursos na visão geral da versão DataGrip 2021.1 com nossos colegas.



Rede





E como sempre, PhpStorm inclui todas as atualizações do WebStorm 2021.1 : autocompletar mais inteligente para JavaScript e TypeScript, suporte estendido para Stylelint e muito mais.






E aqui está um vídeo (em inglês), onde demonstramos as principais características deste lançamento:





É tudo por agora. Teremos o maior prazer em receber seus comentários - perguntas, desejos, relatórios de erros e apenas pensamentos. Deixe-os nos comentários abaixo.



All Articles