Nouveautés de PhpStorm 2023.3

Voici les points clés de cette mise à jour :

  • L'AI Assistant est sorti de la phase de préversion
  • La prise en charge de Pest
  • La prise en charge de PHP 8.3
  • L'amélioration de la prise en charge de Symfony
  • Des améliorations de confort dans l'interface utilisateur

L'AI Assistant est sorti de la phase de préversion Disponibilité générale

L'AI Assistant est maintenant disponible pour tous, avec de nombreuses nouveautés et fonctionnalités améliorées pour rendre votre travail avec les IDE de JetBrains encore plus productif.

Saisie semi-automatique du code basée sur les grands modèles de langages (LLM)

Saisie semi-automatique du code basée sur les grands modèles de langages (LLM)

L'AI Assistant peut maintenant générer des blocs de code multilignes pour vous. Commencez simplement votre saisie sur une nouvelle ligne, et si une suggestion de LLM est disponible, un extrait de code grisé s'affichera. Pour accepter la suggestion, appuyez sur Tab.

Actuellement, ce type de suggestions est disponible dans les contextes de classes ou dans les définitions de fonctions.

Génération de code de test

Génération de code de test

L'AI Assistant peut également générer des tests pour les méthodes de vos classes. Placez le curseur sur la méthode de classe devant faire l'objet de tests unitaires, appuyez sur Alt+Entrée, sélectionnez AI Assistant et choisissez Generate Unit Tests.

Génération de code dans l'éditeur

Génération de code dans l'éditeur

Auparavant, vous pouviez utiliser le chat IA pour générer des extraits de code. Désormais, vous disposez de l'action AI Assistant | Generate code…, qui ouvre une fenêtre de prompt dans l'éditeur. Il vous sera alors demandé de saisir une description du code que vous souhaitez générer. L'AI Assistant vous fera des suggestions, que vous pouvez accepter en partie ou en totalité.

Explications des erreurs par l'IA dans la console

Explications des erreurs par l'IA dans la console

Lorsque vous exécutez un script PHP, une configuration d'exécution ou une action Composer, il arrive qu'une erreur se produise et que la tâche échoue. L'AI Assistant peut vous aider à déterminer l'origine du problème. Cliquez sur le bouton Explain with AI dans une trace de pile ou un message d'erreur pour obtenir une explication générée par IA.

Utilisez l'AI Assistant dans WebStorm en tant que fonctionnalité supplémentaire en vous abonnant à JetBrains AI Service.

Mises à jour pour la prise en charge de Pest

PhpStorm now supports the Pest test framework out of the box. We recently agreed with the original author of the Pest plugin to take over its development and bundle it in PhpStorm. You can read the details in our recent blog post.

Tests Pest

Comme c'est le cas avec les tests PHPUnit, vous pouvez maintenant lancer des tests Pest directement depuis PhpStorm. Si vous placez votre curseur dans un test et ouvrez la fenêtre d'exécution, une configuration d'exécution sera créée pour ce test spécifique. Vous pouvez placer le curseur dans le fichier, mais pas dans un test en particulier, pour déclencher tous les tests dans ce fichier.

Assertions

Grâce à cette nouvelle prise en charge de Pest, vous pouvez écrire des assertions en appelant des fonctions ou des méthodes sur $this. Elle améliore également la saisie semi-automatique dans les fonctions de tests, afin que vous puissiez voir les assertions disponibles au fur et à mesure de votre saisie.

Attentes personnalisées

Dans Pest, vous pouvez écrire des attentes personnalisées pour réduire les vérifications standard dans vos tests. PhpStorm peut vous aider à trouver les utilisations des attentes personnalisées et à les renommer.

Prise en charge de PHP 8.3

PhpStorm 2023.3 fournit une prise en charge complète de PHP 8.3. La plupart des changements pris en charge l'IDE s'intégreront naturellement à votre workflow PhpStorm, sans même que vous ne les remarquiez, nous n'évoquons donc ici que les nouvelles fonctionnalités à connaître pour pouvoir en bénéficier.

Attribut Override

Attribut #[\Override]

PHP 8.3 introduit le nouvel attribut #[\Override], qui permet d'afficher explicitement votre intention lors du remplacement d'une méthode. Le moteur PHP est capable de vérifier si une méthode marquée avec #[\Override] remplace réellement la méthode parent et de lever une exception si ce n'est pas le cas. PhpStorm 2023.3 vous avertit de ces cas à l'avance.

Suggestion d'ajout de l'attribut Override

PhpStorm suggère aussi d'ajouter l'attribut #[\Override] lorsque c'est pertinent.

Fonction json_validate() Fonction json_validate()

Nouvelle fonction json_validate()

PHP 8.3 ajoute la nouvelle fonction json_validate() à la bibliothèque standard. Auparavant, le seul moyen de vérifier qu'une chaîne était un JSON valide était de la décoder et de regarder si des erreurs s'étaient produites. PhpStorm peut détecter ces patterns et suggère alors de les remplacer par un appel à la fonction json_validate(). Cette fonctionnalité est intéressante lorsque vous avez uniquement besoin de savoir si l'entrée est un JSON valide, car vous utilisez moins de mémoire qu'en décodant la chaîne.

Constantes de classes typées

Constantes de classes typées

Avec PHP 8.3, vous pouvez déclarer des types pour les constantes de classe. Vous pouvez utiliser toutes les déclarations de type à l'exception de void, callable, et never.

Pour les constantes de classe typées, PhpStorm fournit :

  • Des suggestions pour insérer les types appropriés
  • La saisie semi-automatique pour les indications de types
  • Des vérification de compatibilité avec le type de la valeur par défaut
  • Des vérifications de redéclaration de type lors du remplacement d'une constante dans une classe enfant
Fonctionnalités obsolètes Fonctionnalités obsolètes

Fonctionnalités obsolètes

PHP 8.3 introduit plusieurs obsolescences, mais PhpStorm vous aide en fournissant des inspections qui permettent de les repérer.

Prise en charge de Symfony

PhpStorm 2023.3 apporte plusieurs améliorations destinées aux développeurs Symfony.

Assistant New Project

Assistant New Project

Un nouvel initialiseur de projet intégré pour Symfony vous permet de créer de nouveaux projets avec les types et les versions de votre choix directement depuis l'écran d'accueil.

Prise en charge de Doctrine Query Language dans QueryBuilder

Prise en charge de Doctrine Query Language dans QueryBuilder

Vous bénéficiez désormais de la prise en charge complète de DQL par l'IDE dans les appels des méthodes Query Builder. Les fonctionnalités ajoutées incluent notamment la mise en évidence, la saisie semi-automatique dans les champs et la résolution vers la classe de modèle cible.

Conversion des annotations en attributs pour Symfony et Doctrine

Conversion des annotations en attributs pour Symfony et Doctrine

Following the introduction of attributes in PHP 8.0, Doctrine annotations are being deprecated and will soon be removed. Afin de vous accompagner dans cette transition, PhpStorm 2023.3 inclut une fonctionnalité permettant de convertir les annotations Doctrine en attributs.

PhpStorm prend également en charge la conversion des annotations Symfony vers leurs attributs correspondants, comme #[Required], #[Route], etc.

Autres mises à jour relatives à PHP

Option pour exclure des fichiers de bibliothèques externes de votre projet

Option pour exclure des fichiers de bibliothèques externes de votre projet

Nous avons également ajouté une nouvelle fonctionnalité expérimentale qui permet d'exclure de votre projet les dossiers provenant de bibliothèques indexées. L'exclusion de ces fichiers permet d'éviter les problèmes de définitions multiples et d'améliorer les performances d'indexation.

Spécification d'un style dédié pour les types des génériques

Spécification d'un style dédié pour les types des génériques

Nous poursuivons notre travail d'amélioration de l'expérience pour l'utilisation des génériques. Dans PhpStorm 2023.3, il est désormais possible de définir un code couleur pour les génériques afin que leurs types puissent être facilement distingués.

Possibilité de réduire les attributs PHP multilignes

Possibilité de réduire les attributs PHP multilignes

Les attributs sont de plus en plus utilisés et il peut être difficile de lire du code avec de longs attributs multilignes dans certains frameworks. Cela ne sera plus problème dorénavant car PhpStorm 2023.3 permet de replier les attributs multilignes.

Conversion des métadonnées PHPUnit de PHPDoc en attributs

Conversion des métadonnées PHPUnit de PHPDoc en attributs

PHPUnit 10 introduced support for attributes for adding metadata to test classes and test methods, as well as tested code units. Nous avons implémenté une inspection et un correctif rapide pour vous aider à migrer vers ce nouveau style à partir des anciennes annotations PHPDoc.

Systèmes de contrôle de version

Visionneuse de différences pour l'ensemble des modifications

PhpStorm 2023.3 apporte une nouvelle façon d'examiner les modifications. Désormais, au lieu de parcourir chaque fichier un par un, vous pouvez consulter tous les fichiers modifiés à partir d'un ensemble de modifications dans un même cadre déroulant. Cette nouvelle visionneuse de différences est accessible depuis la fenêtre d'outils Git Log et fonctionne actuellement avec les révisions de JetBrains Space. Nous travaillons à le rendre compatible avec GitLab et GitHub.

Débogueur

Débogueur

La nouvelle option d'insertion Run to Cursor de PhpStorm 2023.3 vous permet d'exécuter rapidement votre code jusqu'à une ligne spécifique pendant le débogage. Une fois votre programme en pause, survolez avec la souris la dernière ligne du code que vous souhaitez exécuter et utilisez la fenêtre contextuelle Run to Cursor. Vous pouvez obtenir le même résultat en utilisant le raccourci clavier Alt + F9 après avoir placé le curseur sur la ligne souhaitée.

Interface utilisateur

Option pour masquer la barre d'outils principale dans le mode d'affichage par défaut

Option pour masquer la barre d'outils principale dans le mode d'affichage par défaut

Suite à vos retours concernant la nouvelle interface utilisateur, nous avons rendu possible le masquage de la barre d'outils principale lorsque vous utilisez le mode d'affichage par défaut de l'IDE, comme cela était le cas dans l'ancienne interface utilisateur. Pour supprimer la barre d'outils, sélectionnez View | Appearance et décochez l'option Toolbar.

Option pour revenir à la disposition par défaut des fenêtres d'outils

Option pour revenir à la disposition par défaut des fenêtres d'outils

Avec la sortie de PhpStorm 2023.1, nous avions introduit la possibilité d'enregistrer plusieurs dispositions de fenêtres d'outils et de basculer entre elles, afin de renforcer les possibilités de personnaliser votre espace de travail. Nous sommes allés un peu plus loin dans PhpStorm 2023.3, en introduisant l'option Default layout, qui permet de rétablir rapidement l'apparence par défaut de votre espace de travail. Cette disposition ne peut pas être modifiée. Vous pouvez y accéder dans Window | Mise en page.

Codage couleur par défaut pour les onglets de l'éditeur

Codage couleur par défaut pour les onglets de l'éditeur

Afin de faciliter le travail avec plusieurs types de fichiers en même temps dans l'éditeur, nous avons introduit un codage couleur par défaut pour les onglets de l'éditeur qui correspond à celui de la fenêtre d'outils Project.

Améliorations pour TypeScript

Améliorations pour TypeScript

Avec toutes les fonctionnalités de WebStorm qu'il comprend, PhpStorm est maintenant capable de résoudre efficacement les problèmes pouvant survenir lors de l'ajout de déclarations de type d'importation et facilite le travail avec la syntaxe verbatimModuleSyntax. Nous avons ajouté la possibilité de configurer la déclaration TypeScript import type. Nous avons également amélioré le comportement du champ exports de package.json pour les fichiers TypeScript.

Fermeture des balises HTML simples en JSX

Mises à jour pour HTML

Désormais, lorsque vous collez du code HTML dans un fichier JSX, non seulement PhpStorm convertit les attributs, mais il ferme aussi automatiquement les balises simples pour vous. Vous pouvez configurer cette option dans Settings | Editor | General | Smart Keys | JavaScript.

Prise en charge de @property pour les propriétés CSS personnalisées

Améliorations concernant CSS

To support the new @property API for creating custom CSS properties, PhpStorm 2023.3 now offers inspections and completion features for explicitly defining CSS custom properties, allowing you to check and restrict property types, establish default values, and determine inheritance possibilities for custom properties.

Améliorations pour Vue 3

Améliorations pour Vue 3

Nous avons ajouté une prise en charge de defineSlots qui fournit la saisie semi-automatique et la navigation pour le nom du slot, ainsi que la refactorisation Rename. Nous inaugurons également la saisie semi-automatique pour les propriétés avec defineExpose. Dans PhpStorm 2023.3, les importations requises pour les composants sont ajoutées en fonction du nom spécifié par la fonction defineOptions.