Nouveautés de PhpStorm 2022.3

PhpStorm 2022.3 est une mise à jour majeure qui 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.

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 IDE.

PHP 8.2

PhpStorm 2022.3 fournit une prise en charge complète de PHP 8.2. La plupart des changements apportés à l'IDE 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. Nous avons é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éboguer

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 permettre 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

If the phpinfo() information didn’t help, you can use PhpStorm’s validation script on the server.

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. You can now use FriendsOfPHP/PHP-CS-Fixer or squizlabs/PHP_CodeSniffer for this purpose.

Intégration de Robo

A popular task runner for PHP, Robo, received the following extended support:

  • 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

If you use the Prophecy mocking framework in your tests, working with it in PhpStorm will now be easier.

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

Support for array shape annotations was added in PhpStorm 2021.2, then in 2022.1, we added multiline and nested syntax support for array shapes.

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

Nous avons 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 IDE 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

Set up additional Docker connections using Docker Contexts by calling the Add Service context menu in the Services view and selecting 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

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. Nous avons é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

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

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

Prise en charge de Vitest

PhpStorm now supports Vitest, a Vite-native unit test framework! 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. Consultez l'annonce de la nouvelle version sur le blog de PhpStorm pour consulter la liste complète des améliorations apportées par cette version.