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.
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.
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.
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.
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).
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
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.
À 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 !
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.
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.
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.
Jetez un œil aux Nouveautés de DataGrip 2021.2 ; toutes ces fonctionnalités sont également disponibles dans PhpStorm. En voici quelques-unes.
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.
La saisie semi-automatique du code est désormais disponible dans la console MongoDB.
Voici quelques-unes des autres améliorations apportées par PhpStorm 2021.2 :
dirname()
.