Nouveautés de PhpStorm 2021.1

PhpStorm 2021.1 est une mise à jour majeure qui apporte un aperçu intégré des fichiers PHP et HTML, plus de 20 nouvelles inspections pour détecter les bugs, des améliorations dans tous les sous-systèmes et la programmation en binôme via Code With Me.

PHP

Définir le niveau de langage PHP dans la barre d'état

Définir le niveau de langage PHP dans la barre d'état

Définissez n'importe quelle version de PHP pour le projet sans modifier composer.json. Cela peut être utile pour évaluer la compatibilité de la base de code avec une nouvelle version de PHP par exemple.

Localiser plus facilement les paramètres PHP

Localiser plus facilement les paramètres PHP

Pour permettre de trouver et de modifier les paramètres associés à PHP, nous avons déplacé cette section vers le niveau supérieur dans Settings / Preferences | PHP.

Prévisualisation des fichiers PHP et HTML dans l'éditeur

Dans l'éditeur, une nouvelle icône en haut à droite ouvre un onglet et affiche l'aperçu des fichiers dans PhpStorm. Cela fonctionne pour les fichiers HTML et PHP.

Ouvrez un fichier PHP, tapez votre code et observez immédiatement le résultat juste à côté. Inutile de basculer vers d'autres fenêtres ! Toute modification apportée aux fichiers CSS et JavaScript associés sera également reflétée dans l'aperçu.

Prévisualisation des fichiers PHP et HTML dans l'éditeur

PhpStorm utilise un interpréteur PHP local qui est spécifié dans les paramètres du projet sous Settings/Preferences | PHP. Docker et les autres interpréteurs distants ne sont pas pris en charge.

Vous pouvez activer l'icône d'aperçu en activant au moins un navigateur dans Preferences | Tools | Web Browsers et en cochant la case For HTML files.

Vous pouvez également utiliser le raccourci Alt+F2 pour ouvrir un onglet d'aperçu.

Utiliser des préfixes de table dans les requêtes SQL

De nombreux systèmes et frameworks de gestion de contenu vous permettent de spécifier un préfixe de table, ce qui est utile lorsque vous utilisez la même base de données pour plusieurs applications.

Utiliser des préfixes de table dans les requêtes SQL

Dans les versions précédentes, PhpStorm perdait l'intégration de la base de données dans de tels cas car les requêtes SQL contenaient des marqueurs pour les préfixes.

Il est désormais possible de spécifier des préfixes via le fichier .phpstorm.meta.php. Pour en savoir plus sur les fichiers méta et la spécification des préfixes SQL, consultez l'article aide.

Inspections et correctifs rapides

L'expression booléenne peut être simplifiée

L'expression booléenne peut être simplifiée

Si une expression booléenne contient des littéraux true ou false, PhpStorm peut aider à la simplifier. Utilisez un correctif rapide Alt+Entrée pour supprimer les redondances et améliorer la lisibilité.

Comparaison stricte d'opérandes de types incompatibles

Comparaison stricte d'opérandes de types incompatibles

L'opérateur === de comparaison stricte donnera toujours le résultat false si le type d'un des opérandes n'est pas le même que l'autre.

PhpStorm mettra en évidence ces cas car ils peuvent être source de bugs. PhpStorm prend en compte toutes les informations inférées par le type et vous aidera à repérer les problèmes dans des cas moins évidents.

PHP 8 : remplacer l'affectation dans l'appel de fonction par un argument nommé

PHP 8 : remplacer l'affectation dans l'appel de fonction par un argument nommé

Il était auparavant courant d'ajouter une affectation de variable dans un appel de fonction pour imiter le nom d'un paramètre.

Avec PHP 8, utilisez Alt+Entrée pour remplacer l'affectation par un véritable argument nommé.

Remplacer 'isset' par coalesce

Remplacer 'isset' par coalesce

Cet extrait de code isset($a) ? $a : $b; revient au même que $a ? ?? $b. PhpStorm proposera donc un correctif rapide Alt+Entrée pour le remplacer.

Simplifier les blocs 'if' avec le corps commun

Simplifier les blocs 'if' avec le corps commun

Certains blocs if ou else peuvent devenir redondants après des modifications qui rendent leur corps identique. PhpStorm proposera soit d'extraire les parties communes, soit de fusionner les blocs.

Inverser l'instruction 'if'

Inverser l'instruction 'if'

Appuyez sur Alt-Entrée sur n'importe quel if et choisissez Invert 'if' statement dans le menu. La condition sera changée en son contraire et les ajustements de code nécessaires pour préserver la logique seront effectués. Si vous êtes adepte de la pratique du retour précoce (early return), cette action vous aidera à refactoriser votre code.

'\' inutile au début de l'instruction 'use'

'\' inutile au début de l'instruction 'use'

Dans certains cas, la barre oblique inverse placée en tête est redondante pour les espaces de noms. PhpStorm aide à déterminer où elle peut être supprimée.

La variable 'foreach' écrase une variable déjà définie

La variable 'foreach' écrase des variables déjà définies

Les variables pour la clé et la valeur dans une boucle foreach peuvent être en conflit avec les noms d'autres variables ou paramètres. PhpStorm met en évidence tous les endroits où des erreurs pourraient se produire.

Syntaxe des accolades inutiles pour les variables

Syntaxe des accolades inutiles pour les variables

PhpStorm indique quand les accolades sont redondantes dans le contexte de l'interpolation de chaînes de caractères et peuvent être supprimées en toute sécurité pour améliorer la propreté du code.

Modifier le type de paramètre en fonction d'une valeur par défaut

Modifier le type de paramètre en fonction d'une valeur par défaut

Si le type déclaré ne correspond pas au type d'une valeur, vous pouvez rapidement le mettre à jour en utilisant Alt+Entrée. Si vous utilisez PHP 8, PhpStorm proposera d'utiliser un type d'union.

Remplacer 'isset' par '!== null'

Remplacer 'isset' par '!== null'

L'utilisation de la fonction isset() n'est efficace que pour les tableaux et les variables. Dans tous les autres cas, il est judicieux de vérifier si l'opérande n'est pas null. Utilisez Alt+Entrée pour remplacer les vérifications isset() par des vérifications null.

Mise en évidence des liens http:// dangereux

PhpStorm met en évidence les occurrences du protocole http:// dans les chaînes de caractères et propose un correctif rapide Alt-Entrée pour les changer en https://. Vous pouvez également ajouter des URL à la liste à ignorer à l'aide d'un correctif rapide.

Combinaison de noms suspecte

Combinaison de noms suspecte

PhpStorm met en évidence certains mauvais usages typiques des noms de paramètres ou des valeurs de retour, par exemple $needle et $haystack ou $x et $y. Cela pourrait créer un bug; c'est en tout cas très déroutant pour les personnes qui lisent le code.

Configurer les inspections pré-commit

Configurer les inspections pré-commit

Vous pouvez désormais choisir un profil d'inspection de code avant de valider les modifications dans le VCS. Cliquez sur l'icône d'engrenage pour afficher les options de commit, puis cochez la case Analyze code, cliquez sur Configure et choisissez le profil souhaité. Vous pouvez créer des profils dans Preferences/Settings | Editor | Inspections.

Autre

Une portée synthétique pour une meilleure refactorisation

Une portée synthétique pour une meilleure refactorisation

En PHP, les constructions de boucle comme les blocs foreach, for, while et catch n'ont pas de portée isolée. Cela peut poser problème si vous souhaitez renommer une variable uniquement à l'intérieur d'un bloc.

Dans PhpStorm 2021.1, nous avons introduit une portée synthétique pour de tels blocs. La refactorisation rename (Maj+F6) sera donc plus intuitive.

Meilleure injection automatique de langage

Meilleure injection automatique de langage

PhpStorm 2021.1 analyse l'utilisation des variables et injecte automatiquement les références de langage.

Par exemple, si une variable est utilisée dans une fonction preg_*, PhpStorm sait qu'il s'agit d'un pattern et met en évidence RegExp.

Extensions dans la section 'suggest' de composer.json

Extensions dans la section 'suggest' de composer.json

PhpStorm prend désormais en compte les extensions dans les deux sections require et suggest.

PhpStorm vous préviendra si une extension est enregistrée dans composer.json comme suggéré mais qu'elle est utilisée sans vérifications, comme extension_loaded() ou function_exists(). Vous pouvez utiliser un correctif rapide pour déplacer les extensions vers require/require-dev.

Correctifs notables

Dans cette version, nous avons mis l'accent sur la stabilité et la qualité. Au total, nous avons corrigé 2246 problèmes qui nous ont été envoyés via notre outil de suivi par nos utilisateurs et des membres de l'équipe JetBrains. Voici quelques-unes des corrections les plus intéressantes :

  • Le débogage des projets WSL 2 dans Docker est désormais possible.
  • Les outils d'assurance qualité résolvent désormais correctement les chemins d'accès avec docker-compose en mode exécution.
  • Les fichiers volumineux (plus de 5 000 lignes) sont traités correctement.
  • Nous avons considérablement amélioré les performances dans les projets comportant de nombreux alias.

Code With Me

Développement collaboratif via Code With Me

Code With Me est un outil de JetBrains pour le développement collaboratif et la programmation en binôme à distance. Nous l'avons initialement introduit dans PhpStorm 2020.3, mais la nouvelle version apporte un certain nombre d'améliorations notables.

Définissez les conditions d'accès pour votre projet et partagez le lien avec vos invité·es. Ils n'ont pas besoin d'avoir eux-mêmes installé un IDE pour pouvoir collaborer avec vous et la plateforme fournit les appels audio et vidéo intégrés et une messagerie instantanée.

Pour les entreprises recherchant plus de sécurité, Code With Me sur site peut être installé et fonctionner en toute sécurité sur leur réseau privé.

Client HTTP

Prise en charge de la couche de sockets sécurisée (SSL)

Prise en charge de la couche de sockets sécurisée (SSL)

Vous pouvez maintenant définir des paramètres pour la SSL dans le client HTTP en cliquant sur Add environment file puis en sélectionnant Private. L'IDE va automatiquement créer un fichier où vous pourrez ajouter vos configurations SSL : clientCertificate, hasCertificatePassphrase, clientCertificateKey, verifyHostCertificate.

Améliorations de l'interface utilisateur

Améliorations de l'interface utilisateur

Une nouvelle icône d'œil contient des options pour l'affichage du corps de texte. Vous pouvez changer de mode entre Text / JSON / HTML / XML, activer les numéros de ligne et un nouveau bouton Copy Response Body to Clipboard permet de copier le corps de la réponse dans le presse-papiers rapidement.

IDE

Agrandir les onglets dans la vue fractionnée

Agrandir les onglets dans la vue fractionnée

Fractionnez l'éditeur en faisant glisser un onglet dans un coin de la fenêtre de l'IDE. Puis double-cliquez sur l'onglet pour agrandir la zone d'édition qui lui correspond. Double-cliquez à nouveau sur l'onglet pour le ramener à sa taille initiale.

Prise en charge de JSONPath

Prise en charge de JSONPath

Utilisez le langage de requête JSONPath pour effectuer des recherches dans des documents JSON. De nouvelles actions sont disponibles sous Edit | Find | Evaluate JSONPath.

Prise en charge du format JSON Lines

Prise en charge du format JSON Lines

PhpStorm prend désormais en charge le format JSON Lines délimité par de nouvelles lignes, utilisé pour travailler avec des journaux et des données structurées. L’IDE reconnaît les types de fichiers .jsonl, .jslines, .ldjson et .ndjson.

Paramètres de typographie

Paramètres de typographie

Il est désormais possible d'ajuster les variantes de votre police et d'une police de secours. Retrouvez les nouvelles options sous Typography Settings dans Settings / Preferences | Editor | Fonts.

Technologies Web

Toutes les nouvelles fonctionnalités et améliorations de WebStorm 2021.1 sont également disponibles dans PhpStorm 2021.1, directement ou via des plugins gratuits du référentiel de plugins.

Amélioration de la prise en charge de Stylelint

Amélioration de la prise en charge de Stylelint

Vous pouvez désormais corriger les problèmes dans les CSS avec Stylelint en quelques clics seulement. Survolez un problème dans votre fichier ou placez le curseur dessus et appuyez sur Alt+Entrée, puis sélectionnez Stylelint: Fix current file.

En outre, vous pouvez désormais spécifier un chemin d'accès au fichier de configuration dans Settings / Preferences | Languages & Frameworks | Style Sheets | Stylelint.

Vérifier la spécificité de vos sélecteurs

Vérifier la spécificité de vos sélecteurs

Lorsque vous travaillez avec des feuilles de style, vous pouvez désormais vérifier la spécificité de vos sélecteurs – il vous suffit de passer le curseur sur le sélecteur que vous voulez contrôler. Vous pouvez également cliquer sur un sélecteur et appuyer sur F1/Ctrl+Q pour voir ces informations dans la fenêtre contextuelle Documentation.

Améliorations pour les requêtes pull GitHub

Pour créer une nouvelle requête pull, cliquez sur l'icône + ou allez dans Git | GitHub | Create Pull Request.

Améliorations pour les requêtes pull GitHub

La nouvelle boîte de dialogue comprend tout ce dont vous pouvez avoir besoin :

  • Sélectionner les branches de base et de tête dans une liste qui comprend toutes les branches disponibles.
  • Examiner les fichiers modifiés dans l'onglet Files.
  • Modifier le titre et la description des requêtes pull, nommer des réviseurs et des responsables, et ajouter des libellés.
  • Créer des brouillons de requêtes pull.

Outils de base de données

Jetez un œil aux Nouveautés de DataGrip 2021.1 ; toutes ces fonctionnalités sont également disponibles dans PhpStorm. En voici quelques-unes.

Interface Utilisateur pour les autorisations

Interface Utilisateur pour les autorisations

La fenêtre Modify user, que vous pouvez appeler sur un utilisateur dans l'explorateur de base de données avec Cmd/Ctrl+F6, dispose maintenant d'une interface utilisateur pour ajouter des autorisations aux objets.

Ceci est disponible pour PostgreSQL, Redshift, Greenplum, MySQL, MariaDB, DB2, SQL Server et Sybase.

Live templates contextuels

Modèles dynamiques contextuels

C'est notre solution pour tous ceux qui souhaitent générer des déclarations simples directement depuis l'explorateur de base de données. Lorsque vous faites un clic droit sur un objet dans l'explorateur, la liste qui s'affiche contient des éléments de modèles dynamiques spéciaux.

En savoir plus sur la création de vos propres modèles dynamiques contextuels.