Nouveautés de PhpStorm 2021.2

PhpStorm 2021.2 est une mise à jour majeure qui apporte la prise en charge préliminaire des génériques en PHP, les enums de PHP 8.1, les annotations d'array-shapes d'une ligne, l'amélioration de la mise en forme automatique du code PHP, de nouvelles inspections et refactorisations, ainsi que de nombreuses autres améliorations.

Génériques pour PHP

PHP ne fournit pour le moment pas de prise en charge des génériques au niveau du langage, mais vous pouvez les utiliser via des annotations PHPDoc. Ils rendent le code plus sûr et plus prévisible quand vous travaillez avec des collections, des conteneurs, des factories et d'autres applications.

Génériques pour PHP

Nous avons ajouté la prise en charge des génériques via l'annotation @template. Il est ainsi plus simple de travailler avec des collections dans de nombreux cas, car les suggestions contiennent des éléments du type attendu.

Pour les patterns Factory, vous pouvez désormais utiliser l'annotation class-string<T> pour obtenir une meilleure saisie semi-automatique du code.

Cette prise en charge préliminaire des génériques n'est pas encore complète et présente quelques limitations. Pour en savoir plus, consultez cet article de blog.

Enums de PHP 8.1

La nouvelle version 8.1 de l'interpréteur PHP devrait être publiée fin 2021. Mais comme toujours, nous commençons à déployer la prise en charge à l'avance.

Les enums sont l'une des fonctionnalités les plus attendues de la version 8.1 de PHP.

Avec PhpStorm 2021.2, vous pouvez commencer à utiliser les enums immédiatement. L'IDE propose des suggestions de code et une validation pour vous éviter de les utiliser de manière incorrecte.

Un enum en PHP contient un ensemble de cas, peut avoir des méthodes et peut être utilisé comme une suggestion de type. Dans tous ces cas, PhpStorm met en évidence les erreurs et fait les suggestions appropriées pour vous faire gagner du temps.

Backed Enum

Les cas d'enum peuvent avoir des équivalents de type scalaire. Ceci est utile lorsque les enums doivent être stockés dans un data store. Ce type d'enum est apellé « backed enum ».

Avec un correctif rapide, vous pouvez ajouter une déclaration de type scalaire à un backed enum.

Les enums peuvent également être utilisées avec d'autres fonctionnalités, telles que les conditions et les expressions de correspondance (match).

En savoir plus

Array shapes

Array shapes

Si votre code contient des tableaux similaires à des objets, vous pouvez désormais définir leur structure avec cette annotation PHPDoc : array{key: type, key: type, ...}.

PhpStorm fournit la saisie automatique du code pour ces tableaux annotés, ce qui vous permet de passer moins de temps sur la saisie de routine et d'éviter les erreurs.

La prise en charge est limitée aux définitions d'array-shapes d'une ligne. Pour les structures plus importantes, il est souvent préférable d'utiliser des objets et des classes réels.

Refactorisation Extract Method améliorée

Nous avons amélioré Extract Method, l'une des refactorisations de PhpStorm les plus fréquemment utilisées.

Cette refactorisation permet de diviser les méthodes importantes en unités plus petites et d'éliminer le code en double.

Pour utiliser cette refactorisation, sélectionnez n'importe quelle partie de code et appuyez sur ⌘⌥M (Cmd+Alt+M / Ctrl+Alt+M).

Refactorisation le code dupliqué

PhpStorm dispose de l'inspection Duplicated code fragment. Elle met en évidence toutes les parties du code qui sont très similaires. Dans ce cas, la mise en forme, les noms de variables et l'ordre des instructions peuvent être différents, mais le résultat final doit être le même.

Cette inspection met en évidence les premières lignes de fragments dupliqués. Vous pouvez désormais refactoriser rapidement de telles sections de code en appuyant sur Alt+Entrée sur la ligne en évidence et en sélectionnant la refactorisation Extract Method dans le correctif rapide du code dupliqué.

PhpStorm peut également trouver des petits fragments de code dupliqués dans la portée actuelle (méthode, classe ou fichier) pendant la refactorisation. Sélectionnez un fragment de code, puis appelez la refactorisation avec ⌘⌥M (Cmd+Alt+M / Ctrl+Alt+M). La case à cocher Review and replace duplicates apparaît en bas de la boîte de dialogue.

Nouveau sélecteur intelligent pour les fragments de code

Nouveau sélecteur intelligent pour les fragments de code

Vous pouvez également appeler la refactorisation Extract Method sans sélectionner aucun code. Dans ce cas, PhpStorm suggère une liste de fragments de code possibles. Les suggestions sont filtrées et ne contiennent que les segments pour lesquels une refactorisation est pertinente.

Amélioration de l'extension de sélection

Vous savez probablement déjà qu'il est possible de sélectionner une partie du code avec l'action Expand / Shrink selection ⌥+Haut / ⌥+Bas (Ctrl+W / Ctrl+Maj+W). C'est l'une des moyens les plus rapides pour sélectionner le code à refactoriser.

Cette version introduit une mise à jour mineure mais utile : la possibilité de sélectionner des blocs sans accolades.

La refactorisation Extract Method a fait l'objet d'autres d'améliorations. Pour plus d'informations, consultez cet article de blog.

Inspections et correctifs rapides

Chaque version apporte une série d'inspections qui visent à réduire le temps consacré à la recherche de bugs et à leur correction. Pour appliquer un correctif rapide, utilisez Alt+Entrée sur n'importe quelle section de code mis en évidence dans PhpStorm.

La condition peut être remplacée par « ?-> »

La condition peut être remplacée par « ?-> »

Les vérifications inutiles de la condition null peuvent être remplacées par le nouvel opérateur sécurisé PHP 8. Appuyez sur Alt+Entrée pour effectuer la modification.

Utiliser une constante d'une classe là où elle est définie

Utiliser une constante d'une classe là où elle est définie

PhpStorm met en évidence les constantes accessibles via une sous-classe ou une sous-interface et non à partir des entités dans lesquelles elles sont définies. Avec le correctif rapide Alt+Entrée, vous pouvez remplacer le nom de l'entité par le nom dans lequel la constante est définie.

Conditions redondantes dans les expressions logiques

Conditions redondantes dans les expressions logiques

PhpStorm évalue désormais les parties des conditions pour identifier les éventuelles redondances. Cela peut être utile lorsque les vérifications ne sont pas évidentes et que vous ne pouvez pas déterminer à première vue lesquelles sont superflues.

Inspections de Refactoring Opportunities

Nous avons ajouté un nouveau groupe d'inspections dans la section PHP de Settings / Preferences | Editor | Inspections.

Ce groupe comprend des inspections qui aident à identifier les éléments intéressants à refactoriser. Ces inspections sont désactivées par défaut, mais même dans ce cas, une icône supplémentaire de la gouttière apparaît à côté du code identifié (au lieu de le souligner dans l'éditeur).

En cliquant sur l'icône de la gouttière, la refactorisation suggérée est appelée.

Ces inspections sont des combinaisons de diverses mesures de qualité du code : complexité cyclomatique, niveaux d'imbrication, nombre de variables utilisées, nombre total de lignes, et bien d'autres.

Vous pouvez trouver la liste des mesures utilisées dans la description de chaque inspection.

En savoir plus

IDE

Exécuter des tests avant commit

Exécuter des tests avant commit

Nous avons étendu la liste des actions pré-commit avec la possibilité d'exécuter des tests. Cochez la case Run Tests et sélectionnez la configuration à exécuter. Il est utile de vérifier le code avant qu'il ne soit dans le VCS.

Désormais, vous pouvez également personnaliser les options Analyze code et Cleanup en cliquant sur Choose profile à côté de celles-ci.

Actions lors de l'enregistrement

Actions lors de l'enregistrement

Nous avons ajouté une nouvelle page de configuration sous Preferences / Settings | Tools | Actions on Save.

Vous y trouverez une liste d'actions qui peuvent être déclenchées avec Ctrl+S ou pendant la sauvegarde automatique. Ces actions comprennent, entre autres, la vérification du code, la mise en forme, le nettoyage du code et le déploiement.

Comportement unifié pour Show Diff

Action Show Diff unifiée

PhpStorm ouvre par défaut une comparaison différentielle entre le fichier initial et le fichier modifié dans l'éditeur, quel que soit l'endroit où vous avez appelé l'action Show Diff. Si vous préférez suivre les modifications dans une fenêtre séparée, il vous suffit de faire glisser le fichier souhaité depuis l'éditeur et de le déposer.

Recherche textuelle dans les révisions de l'historique local

Recherche textuelle dans les révisions de l'historique local

L'historique local a maintes fois sauvé de nombreux développeurs et la fonctionnalité a été encore améliorée : pour trouver rapidement un texte dans les révisions locales, vous pouvez utiliser le champ de recherche dans la boîte de dialogue Local History.

Recherche textuelle dans les révisions de l'historique local

Signature GPG

PhpStorm 2021.2 offre une nouvelle façon de sécuriser vos commits. Vous pouvez maintenant signer les commits Git avec GPG. Pour ce faire, allez dans Settings | Version Control | Git, puis choisir Configure GPG Key dans la liste déroulante.

Interface utilisateur localisée

Interface utilisateur localisée en chinois, japonais et coréen

À partir de cette version, l'interface utilisateur de PhpStorm est disponible en chinois, coréen et japonais. La localisation est disponible sous forme de plugins de packs linguistiques, qui ne sont pas inclus automatiquement mais peuvent s'installer facilement dans votre IDE*. Plus de 1,5 million d'utilisateurs ont commencé à utiliser la version EAP partiellement localisée de nos packs linguistiques. Vous pouvez désormais profiter d'une expérience de localisation complète !

Technologies web

Toutes les nouvelles fonctionnalités et améliorations de WebStorm 2021.2 sont également disponibles dans PhpStorm 2021.2, soit automatiquement, soit par le biais de plugins gratuits à disposition dans la boutique Plugin Marketplace.

Refactorisation Rename pour les hooks useState de React

Refactorisation Rename pour les hooks useState de React

PhpStorm peut maintenant renommer à la fois les valeurs et les fonctions useState. Placez le curseur sur une valeur d'état et appuyez sur ⇧F6/Maj+F6 ou accédez à Refactor | Rename dans le menu contextuel du clic droit.

Importation automatique pour require()

Importation automatique pour require()

Quand vous travaillez avec des modules CommonJS, PhpStorm peut désormais ajouter les instructions d'importation manquantes lorsque vous utilisez la saisie semi-automatique du code.

Outils de base de données

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

Source de données DDL

Source de données DDL

Il est maintenant possible de générer une source de données DDL basée sur une source réelle. Les fichiers DDL seront créés sur le disque et la nouvelle source de données sera basée sur ces fichiers. Vous pourrez ainsi toujours régénérer ces fichiers et actualiser la source de données DDL.

Saisie semi-automatique des champs et des opérateurs pour MongoDB

Saisie semi-automatique des champs et des opérateurs pour MongoDB

La saisie semi-automatique du code est désormais disponible dans la console MongoDB.

Autres améliorations 

Voici quelques-unes des autres améliorations apportées par PhpStorm 2021.2 :

  • Vous pouvez prévisualiser les fichiers HTML et PHP dans un navigateur en utilisant le serveur web intégré de PhpStorm. PhpStorm peut maintenant recharger automatiquement les pages ouvertes lors de l'enregistrement.
  • Il est désormais plus facile de réorganiser les fenêtres d'outils. Survolez le haut de la fenêtre d'outils que vous souhaitez déplacer, faites-la glisser et déposez-la à l'endroit souhaité.
  • PhpStorm nettoie automatiquement tous les répertoires de caches et de journaux dont la dernière mise à jour remonte à plus de 180 jours. Vous pouvez initier le processus manuellement dans Help | Delete Leftover IDE Directories.
  • De nouvelles options de terminal ont été ajoutées pour configurer une forme de curseur et pour utiliser Option comme méta-modificateur.
  • Une nouvelle page Advanced settings offrant des options pour optimiser PhpStorm a été ajoutée dans Preferences.
  • La vitesse des téléchargements FTP pour les collections de fichiers importantes a été considérablement améliorée.
  • Ajout de la prise en charge du paramètre levels dans dirname().
  • Résolution de tous les problèmes connus concernant la mise en forme du code PHP.