Prise en charge des types d'union PHP 8, nouveau moteur de flux de contrôle pour PHP, refactorisation Extract Class, prise en charge complète des requêtes pull GitHub, tout nouveau widget d'inspections et prise en charge d'OpenAPI.
Nous avons 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.
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.
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 :
composer.json
pour que PhpStorm la retrouve automatiquement.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é.
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.
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.
Lors de l'héritage, PHP vous permet de modifier les types si vous suivez ces règles de base :
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.
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.
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.
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.
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.
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.
PhpStorm peut détecter quand la variable sera forcément null
. Dans ce cas, l'IDE suggère de simplifier l'expression pour la rendre plus claire.
PHP_CodeSniffer
comporte une section "exclude-pattern"
, PhpStorm en tient maintenant compte et n'analyse pas les fichiers sous le chemin spécifié. La gestion des dépendances de Composer peut s'effectuer dans l'éditeur directement dans le fichier composer.json.
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.
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.
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.
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 surCtrl+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.
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 ! Cela signifie que lorsque vous ouvrez un projet Laravel, vous pouvez appuyer sur Ctrl-Ctrl et commencer à taper une commande. PhpStorm fournira la saisie semi-automatique du code et suggérera les commandes disponibles.
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.
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.
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 à partir de la barre d'outils ou du menu principal VCS | Git | View Pull Requests.
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'IDE. Il n'est pas nécessaire de créer une branche locale à partir d'une requête pull, tout fonctionne immédiatement.
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 and swagger.yaml/swagger.json).
Le plugin fournit également les services suivants :
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.
Toutes les nouvelles fonctionnalités et améliorations de WebStorm 2020.2 sont disponibles dans PhpStorm 2020.2, soit automatiquement, soit par le biais de plugins gratuits disponibles dans la boutique Plugin Marketplace.
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'IDE 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.
Prise en charge de Nuxt.js, paramètres du style de code spécifiques à Vue, améliorations concernant Vue dans les projets TypeScript, et bien d'autres atouts ont été ajoutés au cours de l'année écoulée. La prise en charge de Vue dans PhpStorm n'a jamais été aussi avancée !
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.
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'IDE 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'IDE basculera automatiquement vers Git à partir de WSL, et il vous fournira également la possibilité d'utiliser toutes les fonctionnalités concernant Git dans l'IDE.
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.
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.
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'IDE exécutera un rebase interactif en arrière-plan.
Jetez un œil aux Nouveautés de DataGrip 2020.2 – toutes ces fonctionnalités sont également disponibles dans PhpStorm.
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. Utilisez toute la puissance de notre éditeur de code pour vos données .
Nous avons 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.
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. Cette requête n'est pas le SQL exact qui sera exécuté pour modifier vos données car PhpStorm utilise un pilote JDBC pour mettre à jour les tables, mais la plupart du temps cela sera le même.