PhpStorm 2021.1: aperçus de fichiers PHP et HTML, plus de 20 nouvelles inspections et coupler la programmation avec le code avec moi





Nous sommes heureux de vous présenter la première version majeure de PhpStorm cette année! Sous la coupe se trouve une analyse détaillée de tous les changements et nouvelles fonctionnalités.



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



  • Le nouvel outil de programmation par paires de JetBrains est disponible gratuitement pour les utilisateurs de PhpStorm. Code With Me offre une co-programmation en temps réel, des appels audio et vidéo intégrés et une messagerie instantanée.





Vous pouvez télécharger PhpStorm 2021.1 sur le site Web ou dans l' application Toolbox .



C'est brièvement, et maintenant plus sur tout.



PHP



Sélection de la version PHP via la barre d'état



Dans la version précédente, nous avons ajouté l'indicateur de version de PHP dans la barre d'état. En 2021.1, la version peut être modifiée indépendamment de celle spécifiée dans le composer.json



. Cela permettra, par exemple, de vérifier rapidement la compatibilité du code avec les nouvelles versions de PHP.









Trouvez facilement les paramètres PHP



La plupart des paramètres liés à PHP sont désormais disponibles dans Paramètres / Préférences | PHP .









Afficher les fichiers PHP et HTML dans l'éditeur



Lorsque vous survolez n'importe quel endroit de l'éditeur, une fenêtre contextuelle avec des icônes de navigateur apparaît dans le coin supérieur droit. En cliquant sur l'icône, le fichier actuel s'ouvrira dans le navigateur sélectionné.



Maintenant, il y a aussi une icône PhpStorm ici. Lorsque vous cliquez dessus, le fichier s'ouvre pour un aperçu directement dans l'éditeur.



L'aperçu fonctionne sur les fichiers HTML et PHP, ainsi que sur tous les fichiers CSS et JavaScript associés.







Ouvrez le fichier et commencez à taper - l'onglet d'aperçu affichera instantanément toutes les modifications.



PhpStorm utilise un interpréteur PHP local qui peut être spécifié pour le projet dans Paramètres / Préférences | PHP... Docker et d'autres interprètes non locaux ne sont pas encore pris en charge.



S'il n'y a pas d'icônes dans l'éditeur, vous devez vous assurer que dans Préférences | Outils | Navigateurs Web , au moins un navigateur est sélectionné et la case à cocher Pour les fichiers HTML est cochée .



Vous pouvez également ouvrir l'onglet d'aperçu en appuyant sur Alt + F2.





Utilisation du préfixe de table dans les requêtes SQL



De nombreux CMS et frameworks permettent de préfixer les tables. Cela peut être utile lorsque vous utilisez la même base de données pour plusieurs applications.



Auparavant, l'intégration avec les outils de base de données était perdue car les noms de table étaient générés dynamiquement.



Vous pouvez maintenant spécifier le préfixe dans le fichier .phpstorm.meta.php . Vous pouvez en savoir plus sur les métafichiers et comment spécifier des préfixes de table sur la page d'aide .



Disons que nous avons la requête suivante dans une application Drupal:











Comme vous pouvez le voir, PhpStorm ne peut résoudre ni le nom de la table ni les noms des colonnes. C'est parce que nous avons spécifié le préfixe de table dans la configuration Drupal.



Pour résoudre ce problème, ajoutez un fichier .phpstorm.meta.php



avec le contenu suivant au projet :



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







Maintenant, PhpStorm sera en mesure de lier des requêtes SQL aux sources de données et de vous fournir des fonctionnalités telles que la saisie semi-automatique, la transition vers la vue des données, etc.







À propos, si la demande est formée par concaténation, cela fonctionnera également:



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







Inspections et correctifs rapides



Dans cette version, nous avons ajouté plus de 20 vérifications différentes et des correctifs rapides pour aider à éviter les erreurs dans les premiers stades de développement. Vous pouvez afficher la liste complète des inspections et les configurer dans Paramètres / Préférences | Rédacteur | Inspections .



Lorsqu'un problème survient, survolez-le, appuyez sur Alt + Entrée et sélectionnez la solution rapide suggérée.



Et maintenant plus sur certaines des nouvelles inspections.



Simplifier les blocs `if` avec les mêmes corps



Certains blocs if



et else



peuvent être redondants. Par exemple, vous pouvez les changer, ce qui fait que leurs corps sont complètement ou partiellement identiques.



PhpStorm détectera ces blocs supplémentaires et proposera de les supprimer:











De plus, si seulement une partie du corps est répétée, PhpStorm proposera de n'en extraire que:







Inversion de `if`



Si vous appuyez sur Alt + Entrée pour l'un if



, vous serez invité à entrer la commande "Invert` if` statement" . Il inverse la condition et effectue les ajustements nécessaires pour préserver la logique.



Si vous aimez utiliser le retour anticipé , cette inspection vous sera très utile lors de la refactorisation de votre code.



Par exemple :







dans les boucles, cela fonctionne aussi:





Remplacement de `isset` par ??



Le code isset($a) ? $a : $b;



est identique $a ?? $b



, donc PhpStorm le mettra en évidence et suggérera une solution rapide pour le remplacement.







, —  , .



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



`isset` `!== null`



L'utilisation isset()



n'a de sens que pour les tableaux et les variables. Dans tous les autres cas, il est préférable de vérifier l'opérande null



.



PhpStorm mettra en évidence ces endroits et vous permettra de les remplacer par Alt + Entrée isset()



par null



.







La variable dans `foreach` écrase la variable déjà déclarée



Les variables de clé et de valeur dans la boucle foreach



peuvent entrer en conflit avec les noms d'autres variables ou paramètres.



Le problème est que PHP n'a pas de portée distincte pour eux. Autrement dit, la valeur sera remplacée - probablement contrairement aux attentes.



PhpStorm mettra en évidence de tels endroits car ils sont des sources potentielles de bogues.







Accolades inutiles pour les variables dans les chaînes



PhpStorm met en évidence les accolades redondantes dans le contexte de l'interpolation de chaîne, vous invitant à les supprimer et à rendre votre code plus propre.







Simplifier les expressions booléennes



Si l'expression booléenne contient des littéraux true



ou false



, elle peut probablement être simplifiée et rendue plus lisible.



PhpStorm mettra en évidence ces expressions et vous permettra de les simplifier en utilisant Alt + Entrée.







Comparaison stricte avec les types incompatibles



L'opérateur ===



retournera toujours false



si les opérandes ne sont pas du même type.







PhpStorm met désormais en évidence de tels endroits car ils peuvent être sources de bogues. Dans le même temps, PhpStorm prendra en compte tous les types déduits et vous aidera à trouver des problèmes dans les cas les plus évidents.







Liens non sécurisés http: //



L'utilisation du protocole http://



dans les lignes est maintenant mise en évidence. L'EDI propose une solution rapide pour un remplacement rapide http://



de https://



(par Alt-Entrée). Vous pouvez également l'utiliser pour ajouter une URL à la liste des liens ignorés.







Combinaisons de noms suspectes



PhpStorm met en évidence certaines erreurs courantes dans la dénomination des paramètres ou des valeurs de retour, telles que $needle



et $haystack



ou $x



et $y



.



Habituellement, de telles erreurs sont le symptôme d'un bogue ou, à tout le moins, sont très déroutantes.







Remplacement de `define` par` const`



PhpStorm détecte les cas où une déclaration constante via define



peut être remplacée par une syntaxe plus lisible const



. Avec Alt + Entrée, vous pouvez effectuer un remplacement.







Configurer les inspections pré-commit



Vous pouvez maintenant sélectionner un profil d'inspection à utiliser pour analyser votre code avant de vous engager dans Git.



Cliquez sur l'icône d'engrenage, cochez la case Analyser le code , cliquez sur Configurer et sélectionnez le profil souhaité.







Vous pouvez créer vos propres profils dans Paramètres / Préférences | Rédacteur | Inspections .



Autre



Portée artificielle de refactoring



Cycles foreach



, for



, while



et les blocs catch



en PHP ne sont pas isolés portée. Ceci est plutôt gênant lorsque vous renommez des variables, car cela renomme également des variables en dehors du bloc souhaité.



Dans PhpStorm 2021.1, nous avons ajouté une portée artificielle pour tous ces blocs. Désormais, lors de l'appel du refactoring Rename (Shift + F6), le renommage sera plus intuitif.









Amélioration de l'injection automatique de la langue



Les versions précédentes de PhpStorm pouvaient définir la langue pour les arguments uniquement. Par exemple, si vous passiez une chaîne à une fonction preg_*



, elle était mise en surbrillance en tant qu'expression régulière.



Mais si vous avez utilisé une variable, sa valeur n'était en aucun cas mise en surbrillance.



PhpStorm 2021.1 analyse l'utilisation des variables et est capable d'implémenter automatiquement la syntaxe souhaitée.









Utiliser les extensions du bloc `suggest` dans composer.json



La base de code peut contenir des classes d'extensions PHP. Jusqu'à présent, PhpStorm a vérifié si ces extensions sont ajoutées aux sections require



du fichier composer.json



.



PhpStorm 2021.1 prend en compte la spécification des extensions non seulement dans la section `require`, mais aussi dans la section` suggest`.



Plus important encore, PhpStorm avertit maintenant si une extension a été ajoutée suggest



dans composer.json



, mais est utilisée sans vérification de type extension_loaded()



ou function_exists()



.



Une solution rapide spéciale vous permettra d'ajouter une extension à require/require-dev.











Corrections importantes



Nous avons corrigé plus de 2400 tickets ouverts par nos utilisateurs et l'équipe JetBrains dans le tracker PhpStorm. Certains des plus intéressants sont:

  • WSL 2 Docker (WI-53396).

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

  • PHP (5000 ) (WI-31569).

  • (WI-58306).





Code With Me



Code With Me est le nouvel outil de développement collaboratif et de programmation par paires de JetBrains. Nous l'avons initialement introduit dans PhpStorm 2020.3. L'outil a été beaucoup amélioré dans cette version.







Premièrement, il est devenu possible de définir de manière flexible les droits d'accès des complices.



Deuxièmement, les invités n'ont même plus besoin d'installer un IDE - exécutez simplement une commande de console et le client gratuit sera téléchargé automatiquement.



Troisièmement, des appels vocaux et vidéo intégrés, ainsi qu'un messager ont été ajoutés.



Les équipes d'entreprise et les autres équipes de sécurité peuvent désormais exécuter leur serveur Code With Me sur un réseau privé.



En savoir plus sur Code With Me sur le site Web JetBrains .



IDE



Développement des onglets en mode fractionné



Vous pouvez ouvrir plusieurs onglets en même temps en mode Split en faisant simplement glisser l'onglet vers le coin souhaité de l'écran.



Vous pouvez maintenant également double-cliquer sur un onglet pour le développer complètement. Vous pouvez également ramener l'onglet à son état précédent en double-cliquant.









Prise en charge de JSONPath



Vous pouvez désormais utiliser des requêtes JSONPath pour rechercher rapidement des documents JSON volumineux. La fonctionnalité est disponible dans la section Edition | Trouver | Évaluez JSONPath .









Prise en charge des lignes JSON



PhpStorm prend désormais en charge le format JSON Lines pour travailler avec des données structurées et des journaux. L'EDI reconnaît les fichiers .jsonl , .jslines , .ldjson et .ndjson .









Paramètres de typographie



Vous pouvez faire varier les polices principales et de secours. De nouvelles options sont disponibles dans les Paramètres de typographie dans Paramètres / Préférences | Rédacteur | Polices .







Docker



Achèvement des noms d'image dans Dockerfile



Commencez à taper le nom de l'image et PhpStorm vous proposera une liste d'images disponibles sur le Docker Hub:







Pliage dans des fichiers Docker à plusieurs étages



Lorsque vous utilisez plusieurs sections dans un Dockerfile, FROM



vous pouvez réduire l' une d'entre elles et elles seront séparées par une ligne pour une meilleure lisibilité.







Annuler l'exécution de Docker



Vous pouvez facilement arrêter l'exécution d'un Dockerfile en cours d'exécution à partir de la fenêtre Services . Sélectionnez Arrêter le déploiement dans le menu contextuel de l'élément lancé.





Améliorations des demandes d'extraction GitHub



Pour créer un pool rekvest, cliquez simplement sur le "+" dans la fenêtre Pull Requests ou allez dans Git | GitHub | Créer une demande d'extraction .



Dans la boîte de dialogue mise à jour, vous pouvez:

  • Sélectionnez les branches de base et de tête dans la liste des branches disponibles.

  • Affichez les fichiers modifiés dans l'onglet Fichiers.

  • Modifiez les noms et les descriptions des pull requests, attribuez des réviseurs et des interprètes, ajoutez des balises.

  • Créez des brouillons de demandes d'extraction.









PhpStorm 2021.1 prend également en charge les modèles de demande d'extraction. Ajoutez un fichier pull_requst_template.md



au projet et spécifiez le texte du modèle - et chaque fois que vous créez une nouvelle demande d'extraction, cette description sera remplie automatiquement.



Prise en charge des modèles pour les commits Git



PhpStorm respecte désormais le modèle spécifié dans commit.template



votre paramètre de configuration Git lors de la création d'un message de validation .



Client HTTP



Prise en charge SSL



Vous pouvez maintenant spécifier les paramètres SSL dans le client HTTP. Cliquez sur le bouton Ajouter un fichier d'environnement et sélectionnez Privé . Le fichier sera créé dans lequel vous pouvez spécifier les paramètres SSL: clientCertificate



, hasCertificatePassphrase



, clientCertificateKey



, verifyHostCertificate



.









Améliorations pour OpenAPI / Swagger



PhpStorm prend en charge les spécifications OpenAPI et l'interface utilisateur Swagger intégrée.



Désormais, Swagger UI prend en charge les spécifications avec des fichiers externes connectés via $ref



.







Outils de base de données





PhpStorm DataGrip : , DataGrip: Modèles de Live. 2021.1 par .







, PhpStorm Tous WebStorm 2021,1 : JavaScript tapuscrit, Stylelint .















All Articles