PhpStorm 2022.3 est disponible, l'EDI PHP vient avec une prise en charge complète de PHP 8.2
Une nouvelle interface utilisateur en preview et bien d'autres améliorations

JetBrains vient d'annoncer la disponibilité de PhpStorm 2022.3. Il s'agit de la troisième mise à jour majeure de l'année de l'EDI pour le développement Web avec PHP. Cette version apporte notamment l'accès à la nouvelle interface utilisateur en preview, la prise en charge de PHP 8.2, Code Vision pour PHP, la prévisualisation des correctifs rapides, des améliorations pour Xdebug, la prise en charge de ParaTest, la vue rendue pour PHPDoc et Redis dans les outils de base de données. Nous présentons dans la suite les nouveautés et améliorations de cette version par domaine.

Nouvelle interface utilisateur (Preview)

La toute nouvelle interface utilisateur est maintenant disponible pour tous. Elle est désactivée par défaut car elle en est encore au stade Bêta/Preview. Vous pouvez l'activer dans Settings/Preferences | Appearance & Behavior | New UI Preview.

Cette nouvelle interface utilisateur est épurée afin de réduire les distractions et fonctionne plus rapidement tout en vous permettant de conserver la plupart des habitudes que vous aviez avec la précédente interface.


Expérience utilisateur

Cette version apporte de nombreuses autres améliorations visuelles. Voici les plus significatives d'entre elles.

Code Vision

Dans l'éditeur, à côté du code PHP, vous pouvez voir des informations supplémentaires sur les symboles PHP : classe, trait, interface, méthode ou fonction. Le nombre d'utilisations est visible, pas besoin de cliquer sur un symbole pour le découvrir.

Pour les classes et les interfaces, vous verrez le nombre d'héritiers et d'implémentations, respectivement.

Vous obtiendrez également des informations de Git sur les personnes qui ont apporté le plus de modifications à une certaine partie du code, ce qui vous permettra d'identifier rapidement qui est le propriétaire du code et a la plus grande connaissance de cette partie du code.

Prévisualisation des correctifs rapides

Vous pouvez corriger automatiquement certains problèmes de code en appuyant sur Alt+Entrée.

Vous pouvez désormais prévisualiser un correctif rapide ou une intention avant de l'appliquer et ainsi voir instantanément leur impact sur votre code.

Vue rendue pour PHPDoc

Dans PhpStorm 2022.3, vous pouvez modifier l'apparence des blocs PHPDoc avec une option qui offre un meilleur rendu et la prise en charge de la mise en forme HTML. Cela rend la lecture de code ayant beaucoup d'annotations plus facile et agréable.

Pour activer la nouvelle vue rendue, cliquez sur l'icône dans la gouttière Rendered view gutter icon à côté d'un bloc PHPDoc.

Pour activer le rendu de tous les commentaires PHPDoc, faites un clic droit sur l'icône de la gouttière et choisissez Render All Doc Comments.


Amélioration de la documentation rapide

Si vous appuyez sur Ctrl+Q sur une fonction, une classe ou une méthode, PhpStorm affiche la documentation directement dans l'éditeur.

Cette fenêtre contextuelle a été considérablement remaniée. Désormais, vous n'avez plus besoin de basculer sur le navigateur pour chercher de la documentation, car tout se trouve dans votre EDI.

PHP 8.2

PhpStorm 2022.3 fournit une prise en charge complète de PHP 8.2. La plupart des changements apportés à l'EDI s'intégreront de manière organique dans votre workflow PhpStorm, nous n'aborderons donc que les nouvelles fonctionnalités à connaître.

Classes readonly

Une classe readonly est un moyen rapide de déclarer une classe qui n'a que des propriétés readonly. Vous pouvez utiliser ces classes pour garantir que les données ne soient pas modifiées après leur initialisation.

Pour les classes readonly, PhpStorm fournit :

  • Un correctif rapide pour convertir une classe avec des propriétés readonly en classe readonly.
  • Une inspection pour s'assurer que les classes readonly peuvent seulement avoir des enfants readonly.
  • La détection des propriétés readonly redondantes dans les classes readonly.
  • Des vérifications des propriétés statiques et dynamiques interdites dans les classes readonly.

Propriétés dynamiques obsolètes

L'accès à des propriétés qui n'existent plus dans PHP 8.2 générera un avertissement d'obsolescence.

PhpStorm met en évidence ces utilisations et fournit des correctifs rapides pour les erreurs, soit en ajoutant la propriété, soit en utilisant l'attribut #[AllowDynamicProperties].

Améliorations du système de types

PHP 8.2 fournit la prise en charge des types de formes normales disjonctives, ainsi que les types null, true et false autonomes. JetBrains a également ajouté la prise en charge de tous ces types dans PhpStorm.

Autres obsolescences

PHP 8.2 introduit quelques obsolescences supplémentaires et PhpStorm fournit les inspections correspondantes afin de les repérer et des correctifs rapides pour actualiser votre code.

Interpolation de chaînes de caractères ${} obsolète

Pour utiliser une variable à l'intérieur d'une chaîne de caractères, il y avait trois méthodes d'interpolation. L'une d'entre elles est désormais signalée comme obsolète et sera supprimée à l'avenir.

PhpStorm mettra en évidence les occurrences et vous pourrez utiliser un correctif rapide via Alt+Entrée pour mettre le code à niveau.

Callables partiellement pris en charge obsolètes

Plusieurs façons d'appeler des fonctions sont devenues obsolètes avec PHP 8.2.

PhpStorm met en évidence le code non valide et vous pouvez utiliser un correctif rapide Alt+Entrée pour mettre votre code à niveau.

PhpStorm peut analyser l'ensemble de votre base de code en une fois pour détecter tous les problèmes éventuels. Allez dans Code | Analyze Code | Run Inspection by Name, puis recherchez « dynamic property » par exemple, et PhpStorm fera le reste.

Bases de données : prise en charge de Redis

Une itération préliminaire de la très attendue prise en charge de Redis a été implémentée.


Débogueur

Si vous rencontrez des difficultés pour configurer Xdebug, voici quelques-unes des choses que vous pouvez faire dans PhpStorm pour identifier le problème.

Valider la sortie de phpinfo()

Ajoutez un appel phpinfo() à votre script ou page PHP et copiez la sortie de la fonction que vous voyez dans votre navigateur. Puis, appelez Run / Web Server Debug Validation et une boîte de dialogue vous permettra de coller la sortie de phpinfo() de l'étape précédente.

PhpStorm analysera la configuration du serveur et détectera les problèmes les plus courants.


Vérifier la configuration du serveur avec un script

Si les informations de phpinfo() ne suffisent pas, vous pouvez utiliser le script de validation de PhpStorm sur le serveur.

Déboguer la valeur de retour avec Xdebug

Xdebug 3.2 possède une étape de débogage supplémentaire « return from function » qui vous permet d'inspecter la valeur de retour. Et PhpStorm 2022.3 prend en charge cette nouvelle fonctionnalité. Pour la déclencher, utilisez Step Into lorsque vous êtes sur la dernière instruction dans la fonction. Une variable supplémentaire s'affichera alors dans Watches.


Intégration d'outils PHP

Exécuter des tests en parallèle avec ParaTest

La prise en charge des tests parallèles dans PhpStorm tant attendue est enfin disponible. Pour exécuter des tests en parallèle, cochez l'option Use Paratest dans la configuration Run de vos tests et vérifiez que le chemin d'accès au binaire de ParaTest est correctement défini. Normalement, si vous avez ajouté ParaTest dans votre composer.json, le chemin d'accès ressembler à cela : ./vendor/bin/paratest_for_phpstorm.


Utilisation d'outils de formatage externes pour PHP

Il est désormais possible de choisir un outil de formatage externe dans Preferences | PHP | Quality Tools. Vous pouvez utiliser FriendsOfPHP/PHP-CS-Fixer ou squizlabs/PHP_CodeSniffer à cette fin.

Intégration de Robo

Robo, un gestionnaire de tâches pour PHP populaire, bénéficie maintenant d'une prise en charge étendue :

  • Une fenêtre d'outils spéciale, « Robo tasks », est disponible si une classe Robo est présente dans le projet.
  • Une configuration d'exécution pour exécuter des tâches Robo est disponible dans le menu contextuel et appelée à partir d'une méthode Robo.
  • Chaque méthode publique dans une classe Robo a une icône de gouttière pour les configurations respectives.

Prise en charge de Prophecy

Si vous utilisez le framework de simulation Prophecy dans vos tests, son fonctionnement dans PhpStorm sera désormais facilité.

Plus de fonctionnalités pour PHP

Aperçu du format Datetime

Vous n'avez plus besoin de vous souvenir des formats date() ou de les chercher. Dans PhpStorm 2022.3, le survol d'une chaîne de format de date affiche une info-bulle avec un exemple de date.

De plus, lors de la modification d'une chaîne de format de date, vous bénéficiez de la saisie semi-automatique avec des conseils pour tous les caractères reconnus comme paramètres de format.

Prise en charge de l'itération des formes de tableaux en listes

La prise en charge des annotations de forme de tableau a été ajoutée dans PhpStorm 2021.2, puis, JetBrains a ajouté la prise en charge de la syntaxe multiligne et imbriquée pour les formes de tableau dans la version 2022.1.

La pièce manquante est fournie dans PhpStorm 2022.3 : vous bénéficierez de la saisie semi-automatique du code pour tous les éléments de forme de tableau dans les boucles.

Nouvelle solution Settings Sync

JetBrains a fusionné deux anciennes solutions de synchronisation (IDE Settings Sync et Settings Repository) en une seule : Settings Sync. Elle vous permet de synchroniser de manière fiable les paramètres entre différents EDI et machines.

Si vous n'utilisiez pas de solution de synchronisation des paramètres auparavant, mais que vous voulez essayer cette nouvelle solution, vous pouvez l'activer dans Settings / Preferences | Settings Sync | Enable Settings Sync.

Docker

Exécutable Docker à partir de WSL sans Docker Desktop

Vous pouvez configurer ce type de connexion dans Settings / Preferences | Build, Execution, Deployment | Docker.

Nouvelle action contextuelle : Pull image

Appelez les actions contextuelles (Alt-Entrée) sur le nom de l'image mise en évidence, puis cliquez sur Pull Docker image pour obtenir une image requise sans l'exécuter à partir de Dockerfile, docker-compose.yml, ou même à partir de tests utilisant Testcontainers.

Prise en charge du type de fichier .dockerignore

Bénéficiez de la mise en évidence et de la saisie semi-automatique du code dans les fichiers .dockerignore.

Prise en charge du format heredoc dans les fichiers Dockerfile

Utilisez des scripts multilignes directement dans vos Dockerfiles.

Connexions Docker à partir de Docker Contexts

Configurez des connexions Docker supplémentaires à l'aide de Docker Contexts en appelant le menu contextuel Add Service dans la vue Services et en sélectionnant Docker Connections From Docker Contexts.

Client HTTP

Formatage de requêtes longues dans le client HTTP

Le client HTTP offre maintenant de meilleures options de formatage pour les requêtes avec de longues URL. Vous pouvez également utiliser l'action contextuelle Put query parameters on separate lines pour diviser la requête en fragments sur plusieurs lignes.

Scripts pré-requête

Le client HTTP prend désormais en charge les blocs de script qui sont exécutés avant les requêtes. Vous pouvez générer certaines données avant l'exécution de la requête et les passer à la requête suivante à l'aide de variables.

Nouvelles API pour les gestionnaires JavaScript

PhpStorm fournit maintenant l'API сrypto et peut donc calculer les valeurs de hachage md5 ou sha1 pour une requête HTTP.

D'autres fonctions aléatoires sont maintenant disponibles, ce qui est pratique pour tester rapidement les API.

Développement web

Nouveaux modèles de projets pour Next.js et Vite

L'assistant New Project disponible sur l'écran Welcome de PhpStorm inclut désormais des modèles de projets pour Vite et Next.js. JetBrains a également actualisé le modèle de projet pour Vue afin de nous assurer qu'il réponde aux dernières normes.

Code Vision pour JavaScript et TypeScript

Les conseils d'insertion de Code Vision fonctionnent désormais aussi pour JavaScript et TypeScript. Ils faciliteront le suivi des utilisations de différentes classes, méthodes, alias de type et interfaces dans votre code.

Mises à jour pour Vue

PhpStorm peut désormais gérer les importations non résolues et faire des suggestions pour l'importation de composants Vue. Il prend aussi en charge la syntaxe de déstructuration des props, améliore le comportement de la saisie semi-automatique du code et la vérification des types pour les props des composants de la bibliothèque Vue, et corrige plusieurs problèmes liés à Nuxt 3.

Prise en charge de Vitest

PhpStorm prend maintenant en charge Vitest, un framework de tests unitaires natif pour Vite. Vous pouvez exécuter, réexécuter et déboguer vos tests de toutes les principales manières possibles, y compris en utilisant l'icône de gouttière. De plus, le mode watch est activé par défaut avec le scénario All tests. Les tests des instantanés et leur couverture sont également pris en charge en mode watch, ce qui vous permet d'obtenir un retour d'information quasi instantané sur la couverture lorsque vous codez.

Ces évolutions sont les plus importantes de cette version, mais il y en a beaucoup d'autres que vous trouverez dans les notes de version.

Nouveautés et téléchargement de PhpStorm 2022.3