Vous êtes nouveau sur Developpez.com ? Créez votre compte ou connectez-vous afin de pouvoir participer !

Vous devez avoir un compte Developpez.com et être connecté pour pouvoir participer aux discussions.

Vous n'avez pas encore de compte Developpez.com ? Créez-en un en quelques instants, c'est entièrement gratuit !

Si vous disposez déjà d'un compte et qu'il est bien activé, connectez-vous à l'aide du formulaire ci-dessous.

Identifiez-vous
Identifiant
Mot de passe
Mot de passe oublié ?
Créer un compte

L'inscription est gratuite et ne vous prendra que quelques instants !

Je m'inscris !

PhpStorm 2020.2 disponible, l'EDI de JetBrains intègre les types d'union PHP 8, un nouveau moteur de flux de contrôle pour PHP,
Un tout nouveau widget d'inspections et la prise en charge d'OpenAPI

Le , par Michael Guilloux

18PARTAGES

10  0 
Comme plusieurs des EDI de JetBrains, la deuxième mise à jour majeure de l'année pour PhpStorm est disponible. La version 2020.2 de l'EDI pour le développement Web avec PHP arrive avec la prise en charge des types d'union PHP 8, un nouveau moteur de flux de contrôle pour PHP, la refactorisation Extract Class, la prise en charge complète des requêtes pull GitHub, un tout nouveau widget d'inspections et la prise en charge d'OpenAPI. Il y a bien d'autres nouveautés que nous présenterons également dans la suite.

Types d'union PHP 8

JetBrains a commencé la prise en charge de PHP 8 avec les types d'union. En PHP 8.0, il sera possible de déclarer plusieurs types pour les propriétés, les arguments et les types de retour. PhpStorm prend déjà entièrement en charge cette fonctionnalité et peut vous aider à migrer efficacement.

Conversion de PHPDoc en types d'union natifs
Auparavant, les types d'union étaient fournis via PHPDoc. PhpStorm met désormais en évidence ce type d'occurrences. Avec le correctif rapide Alt+Entrée, ils peuvent désormais être convertis en types d'union natifs. Cela fonctionne partout où les types d'union sont applicables, notamment dans les arguments de fonction, les types de retour et les propriétés. Pour les propriétés, il prend également en compte les valeurs par défaut.


Passer le niveau de langage à PHP 8
Pour activer les fonctionnalités liées à PHP 8, vous pouvez passer le niveau de langage à PHP 8 de l'une des manières suivantes :
  • utiliser le correctif rapide Alt+Entrée directement dans l'éditeur de code ;
  • cliquer sur "Preferences | Languages & Frameworks | PHP" et utiliser la liste "PHP language level" ;
  • indiquer la version requise de PHP dans composer.json pour que PhpStorm la retrouve automatiquement.


Effectuer une validation de type
PhpStorm analyse les appels, calcule les types possibles et met en évidence les problèmes liés aux types d'union. Les vérifications fonctionnent à tous les niveaux : propriétés, arguments et valeurs de retour. Dans les bases de code complexes, elles vous aident à repérer les problèmes au premier coup d'œil. PhpStorm mettra en évidence les endroits qui requièrent votre attention avant même que le code ne soit exécuté.

Détecter les types dupliqués et redondants
De nombreuses combinaisons de types sont interdites ou redondantes. Par exemple : bool|false, Foo|Foo, object|User, iterable|array ou iterable|Traversable. Elles sont toutes mises en évidence par PhpStorm comme non valides.

Travailler avec des types nullable
Lorsqu'il n'y a qu'un seul type nullable, il est permis d'utiliser soit la notation "?Type" ou "Type|null" en PHP 8. Mais quand plusieurs types sont combinés avec null, utiliser "?Type1|Type2" est interdit, car ambigu. PhpStorm met en évidence ces violations et fournit un correctif rapide Alt+Entrée pour les convertir.


Suivre les règles de variance
Lors de l'héritage, PHP vous permet de modifier les types si vous suivez ces règles de base :
  • les types de paramètres sont contravariants, c'est-à-dire qu'ils peuvent être étendus ;
  • les types de retour sont covariants, c'est-à-dire qu'ils ne peuvent être que réduits ;
  • les types de propriétés doivent évaluer vers le même type.

Heureusement, avec PhpStorm, il n'est pas nécessaire de se souvenir de ces règles, car il vérifie le code et met en évidence les violations.

Utiliser le pseudotype false
PHP 8 propose un pseudotype spécial "false" qui ne peut être utilisé que dans les déclarations de type d'union. Il est largement utilisé dans la bibliothèque standard, avec strpos() ou array_search() par exemple, et peut être appliqué ailleurs pour indiquer un résultat négatif. PhpStorm met en évidence les occurrences incorrectes et prend en compte l'inférence de type.

Suppression de PHPDoc redondant
Après l'ajout d'une déclaration de type d'union natif, un PHPDoc peut devenir inutile, car il ne fournit aucune information supplémentaire. Vous pouvez maintenant le supprimer avec un correctif rapide Alt+Entrée.


Nouveau moteur de flux de contrôle

Condition toujours vraie
PhpStorm peut maintenant analyser des chemins de code complexes et détecter si la condition d'un bloc if-else a du sens ou est redondante.


Le résultat de "instanceof" est toujours vrai
Comme pour les conditions, PhpStorm est capable de détecter quand les vérifications "instanceof" sont appropriées, ou si elles sont toujours évaluées comme "true" en raison du type inféré dans la hiérarchie des types.

Nouvelle action : Type Info
Cette nouvelle action vous permet de voir le type inféré d'une expression sélectionnée. Lors du codage, vous pouvez sélectionner une expression et en vérifier le type à l'aide du raccourci Ctrl+Maj+P ou du menu "View | Type Info".


L'expression est toujours "null"
PhpStorm peut détecter quand la variable sera forcément null. Dans ce cas, l'EDI suggère de simplifier l'expression pour la rendre plus claire.

Améliorations des outils de qualité du code

Il est désormais possible d'exécuter des outils de qualité via Docker Compose. Pour ce faire, allez dans "Preferences/Settings | Languages & Frameworks | PHP", et ajoutez un nouvel interpréteur distant basé sur Docker Compose.
L'action de mise en forme peut maintenant être exécutée également via un interpréteur distant pour PHP-CS-Fixer et PHPCBF.
Si le ruleset.xml de PHP_CodeSniffer comporte une section "exclude-pattern", PhpStorm en tient maintenant compte et n'analyse pas les fichiers sous le chemin spécifié.


Améliorations de Composer

La gestion des dépendances de Composer peut s'effectuer dans l'éditeur directement dans le fichier composer.json.

Prise en charge des paquets Satis/Packagist personnalisés
Si des sources personnalisées sont spécifiées dans la section « repositories », vous bénéficierez de la saisie semi-automatique pour les paquets personnalisés. Une icône indique maintenant l'état actuel de la mise en cache des référentiels personnalisés dans la gouttière.


Saisie semi-automatique du code pour plusieurs versions
Si un paquet comporte plusieurs versions séparées par une virgule ou des barres verticales (||), PhpStorm propose la saisie semi-automatique avec toutes les versions disponibles pour ce paquet. Auparavant, la saisie semi-automatique était perdue après avoir tapé ~, ^ ou >=, mais elle fonctionne désormais comme prévu avec toutes ces contraintes de plage dans composer.json.


Accès rapide aux paramètres des outils ajoutés en tant que dépendances
PhpStorm fournit de nombreuses intégrations avec des outils tiers. Maintenant, si un outil pris en charge est déclaré dans composer.json, une icône de clé s'affichera à côté de lui dans la gouttière. Vous pouvez cliquer dessus pour accéder directement à la section correspondante des préférences.


Refactorisation Extract Class

Si une classe est encombrée et chargée de nombreuses responsabilités supplémentaires, il est désormais possible de la refactoriser en déplaçant les méthodes et les propriétés vers une nouvelle classe à l'aide de la refactorisation Extract Class. Sélectionnez une fonction, une méthode ou une propriété que vous souhaitez déplacer et appuyez sur Ctrl+T, puis sélectionnez Extract Class. La refactorisation créera un nouveau fichier, instanciera un objet de la classe dans le constructeur et ajustera automatiquement toutes les utilisations.


Améliorations des outils de ligne de commande

La prise en charge des interpréteurs distants est désormais disponible pour les outils de ligne de commande PHP. Sous "Preferences/Settings | Tools | Command Line Tool Support", ajoutez une nouvelle entrée d'outil et choisissez l'un des interpréteurs à distance configurés.
Laravel Artisan sera désormais détecté automatiquement. Lorsque vous ouvrez un projet Laravel et que vous commencez à taper une commande, PhpStorm fournira la saisie semi-automatique du code et suggérera les commandes disponibles.


Nouvelles inspections

Tableau utilisé avec accès en écriture uniquement
Si un tableau est déclaré et mis à jour quelque part dans le code, mais qu'il n'est jamais lu, cela signifie qu'il est très probablement redondant et ajoute du code inutile. L'inspection détecte de tels cas et vous invite à supprimer le tableau pour améliorer la propreté du code.

La propriété typée peut ne pas être attribuée
Si une propriété typée n'a pas de valeur par défaut, elle est considérée comme non initialisée. La lecture des propriétés non initialisées générera une erreur TypeError (à moins qu'un __get() magique ne soit défini). PhpStorm détecte les propriétés non initialisées et met en évidence le code qui tente de les lire.

Prise en charge complète des requêtes pull GitHub

L'ensemble du workflow de la requête pull peut maintenant s'effectuer dans PhpStorm et vous n'avez plus besoin d'alterner avec un navigateur. Vous pouvez gérer les requêtes pull, voir la chronologie et les commentaires linéaires, ajouter des commentaires et des révisions, et accepter les modifications.

Pour commencer à travailler avec les requêtes pull GitHub, ouvrez la fenêtre d'outils Pull Requests, soit à partir de la barre d'outils, soit en appuyant sur Ctrl+7. Sélectionnez ensuite une requête pull dans la liste pour en afficher tous les détails : le message, les noms de branche, l'auteur, etc. À partir de là, vous pouvez démarrer le processus de révision en vérifiant les fichiers modifiés et en commentant les modifications – au niveau du commit et au niveau de la ligne. Il est également possible de fusionner des requêtes pull sans quitter l'EDI. Il n'est pas nécessaire de créer une branche locale à partir d'une requête pull, tout fonctionne immédiatement.


Prise en charge d'OpenAPI

PhpStorm 2020.2 prend en charge le plugin OpenAPI Specifications. Il s'agit d'un plugin gratuit développé par JetBrains qui fournit la saisie semi-automatique, la navigation et la validation du code dans les fichiers de spécification OpenAPI (openapi.yaml/openapi.json et swagger.yaml/swagger.json). Le plugin fournit également les services suivants :
  • intégration de Swagger UI ;
  • génération de code ;
  • Diff de structure intégré entre les spécifications OpenAPI ;
  • icônes de gouttière pour créer des requêtes client HTTP à partir de la spécification ;
  • saisie semi-automatique pour les points de terminaison dans le client HTTP.


Nouveau widget d'inspections et Vue Problems

Dans le coin supérieur droit de l'éditeur, vous verrez le tout nouveau widget d'inspections avec un résumé des problèmes du fichier actuel. Vous pouvez :
  • cliquer sur les flèches pour passer d'un problème à l'autre (ou utiliser les raccourcis F2 / Maj+F2) ;
  • cliquer sur le widget pour afficher une liste de tous les problèmes du fichier dans la fenêtre d'outils Problems ;
  • survoler le widget pour afficher la fenêtre contextuelle des paramètres et choisir les problèmes à mettre en évidence.


Technologies Web

Toutes les nouvelles fonctionnalités et améliorations de WebStorm 2020.2 sont disponibles dans PhpStorm 2020.2, soit prêtes à l'emploi, soit avec des plugins gratuits disponibles dans le référentiel de plugins.

Prettier comme outil de mise en forme par défaut dans les projets JavaScript
Si vous souhaitez utiliser Prettier au lieu de l'outil de mise en forme intégré pour mettre de l’ordre dans votre code, avec cette mise à jour, c'est encore plus facile qu'auparavant. Cochez simplement la nouvelle case "On code reformat" : l'EDI utilisera Prettier à chaque fois que vous remettrez en forme vos fichiers .js, .ts, .jsx et .tsx. De plus, vous pouvez facilement ajouter d'autres types de fichiers.

Meilleure prise en charge pour Vue.js
La prise en charge de Vue dans PhpStorm n'a jamais été aussi avancée avec le support de Nuxt.js, de paramètres du style de code spécifiques à Vue, des améliorations concernant Vue dans les projets TypeScript, et bien d'autres atouts qui ont été ajoutés au cours de l'année écoulée.

Gain de temps grâce à de nouvelles fonctionnalités pour JavaScript
De nouvelles intentions intelligentes (Alt+Entrée) vous aideront à effectuer certaines actions plus rapidement. Par exemple, vous pouvez maintenant convertir rapidement une boucle for avec un index numérique en une méthode de tableau forEach. La consultation des commentaires de la documentation dans les fichiers JavaScript et TypeScript est également facilitée, car vous pouvez désormais les afficher directement dans l'éditeur, ce qui minimise les distractions.

Contrôle de version

Prise en charge de Git installé dans WSL 2
PhpStorm 2020.2 prend en charge Git installé dans WSL 2 pour travailler avec des projets situés dans des systèmes de fichiers Linux et Windows. L'EDI peut basculer entre les exécutables Git en fonction de l'emplacement du projet. Lorsqu'un projet est ouvert à partir de WSL (via le chemin \\wsl$), l'EDI basculera automatiquement vers Git à partir de WSL, et il vous fournira également la possibilité d'utiliser toutes les fonctionnalités concernant Git dans l'EDI.


Nouvelle interface utilisateur pour comparer les branches
Lorsque vous souhaitez comparer deux branches pour voir quels commits n'appartiennent pas à l'une ou à l'autre, PhpStorm 2020.2 affiche les journaux dans l'éditeur et non dans la fenêtre d'outils Git. Cela garantit d'avoir un espace suffisant pour afficher toutes les informations. Choisissez l'action "Compare with Current" dans le menu contextuel "Git Branches VCS | Branches".


Action Drop commit
Vous pouvez maintenant supprimer les commits locaux redondants facilement, en les sélectionnant dans l'onglet Log de la fenêtre d'outils Git et en choisissant "Drop Commit" dans le menu contextuel.

Squash de commits locaux
Il est également possible de combiner plusieurs commits locaux en un seul commit, par exemple pour nettoyer l'historique avant un push. Dans la fenêtre d'outils Git, sélectionnez "Commits" puis choisissez "Squash Commits…" dans le menu contextuel. L'EDI exécutera un rebase interactif en arrière-plan.

Outils de base de données

Toutes les nouveautés de DataGrip 2020.2 sont également disponibles dans PhpStorm. On peut notamment citer :

Un éditeur séparé pour les valeurs de cellule
Désormais, si vous avez une valeur énorme dans votre cellule, vous pouvez l'afficher ou la modifier dans un volet séparé. Vous pouvez également basculer le mode de retour à la ligne à l'aide de la barre d'outils de droite.

Le dialecte Google BigQuery
JetBrains a ajouté un nouveau dialecte SQL : Google BigQuery. La prise en charge complète de BigQuery n'est pas encore disponible, mais il faut bien commencer quelque part. Actuellement, PhpStorm peut correctement mettre en évidence et fournir une assistance de codage pour vos requêtes si vous utilisez Google BigQuery.

Un aperçu DML
Vous pouvez consulter la requête correspondant à vos modifications dans l'éditeur de données. Un bouton DML est actif si des modifications sont en attente.

PhpStorm apporte bien d'autres nouveautés et améliorations que vous pourrez consulter sur le site officiel de l'EDI.

Télécharger PhpStorm 2020.2

Voir aussi :

L'EDI Java IntelliJ IDEA 2020.2 permet d'examiner et de fusionner les Pull Request GitHub directement dans l'EDI et de naviguer rapidement entre les avertissements
DataGrip 2020.2, l'EDI destiné aux administrateurs de base de données, apporte de nombreuses améliorations au niveau de l'interface, de l'éditeur SQL mais aussi des vues
WebStorm, l'EDI pour le développement d'apps Web, est disponible en version 2020.2, avec la prise en charge complète des Pull Request GitHub et la possibilité d'utiliser Prettier par défaut
JetBrains annonce la sortie de YouTrack 2020.3, la troisième mise à jour majeure de l'année pour son logiciel de gestion de projet et de suivi des incidents
AppCode 2020.1 : la nouvelle version de l'EDI destiné aux plateformes Apple propose entre autres une assistance de code plus rapide et la complétion pendant l'indexation

Une erreur dans cette actualité ? Signalez-le nous !