Quoi de neuf dans PhpStorm 2020.1

Faites l'expérience de l'hyper-productivité grâce à cette mise à jour majeure de l'IDE

Prise en charge directe de composer.json

Gérez facilement les dépendances : toutes les actions sont disponibles directement dans l'éditeur d'un fichier composer.json.

Fonctions fléchées

Gestion des dépendances

Nous programmons l'obsolescence de l'ancienne boîte de dialogue Manage dependencies, car il est beaucoup plus facile de travailler avec les paquets à l'intérieur du fichier composer.json.

Pour ajouter un nouveau paquet, vous pouvez commencer à taper son nom dans la section require(-dev), ou appuyer sur Ctrl+Espace, et choisir celui dont vous avez besoin dans la liste des suggestions.

Toutes les versions disponibles du paquet spécifique seront d'ailleurs répertoriées.

Créer un nouveau fichier composer.json

Création d'un nouveau fichier composer.json

Lorsque vous démarrez un nouveau projet, vous pouvez créer un fichier composer.json à l'aide du modèle dans l'IDE. Cliquez droit dans l'arborescence du projet et sélectionnez New -> composer.json File.

Mise à jour et installation de paquets

Mise à jour et installation de paquets

S'il existe une dépendance spécifiée dans composer.json mais qu'elle n'a pas encore été installée, PhpStorm la détectera et la mettra en évidence.

Installez-la en appuyant sur Alt+Entrée et en choisissant Update package ou Update all packages.

Navigation dans les fichiers et dossiers

Navigation dans les fichiers et dossiers

Vous pouvez utiliser Ctrl+Clic sur un paquet pour que PhpStorm mette en évidence le dossier de ce paquet sous le répertoire du fournisseur dans l'arborescence du projet. Pour les fichiers, cela les ouvrira dans l'éditeur.

La même astuce Ctrl+Clic, ou Ctrl+B, fonctionne pour ouvrir n'importe quel lien dans composer.json dans un navigateur.

Composition et exécution de scripts

Composition et exécution de scripts

Chaque entrée de la section des scripts possède une icône de lecture dans la gouttière sur laquelle vous pouvez cliquer pour exécuter instantanément le script.

Lors de l'ajout d'une nouvelle entrée de script, la saisie semi-automatique prend désormais en charge les références de script, les fichiers binaires du répertoire vendeur/bin et tous les fichiers PHP de la source de votre projet.

Couverture du code avec PCOV et PHPDBG

PSR-12

En plus de Xdebug, il est désormais possible d'utiliser soit une extension PHP légère krakjoe/pcov, soit le PHPDBG intégré pour générer des rapports de couverture beaucoup plus rapidement.

Vous pouvez créer une configuration d'exécution pour les tests. Dans les paramètres des configurations d'exécution, une liste déroulante vous permet de choisir votre pilote de couverture préféré : Xdebug, PCOV ou PHPDBG.

Sélectionnez votre pilote préféré, cliquez sur le bouton Run with Coverage dans la barre d'outils principale et observez les résultats de la couverture.

Outils PHPUnit

WSL pour ajouter un interpréteur

PhpStorm 2020.1 dispose d'outils pour vous aider à opérer rapidement et facilement une mise à niveau vers la dernière version de PHPUnit .

Chaque dépréciation sera mise en évidence dans l'éditeur. Placez le curseur sur un élément obsolète et appuyez sur Alt+Enter, puis sélectionnez le correctif rapide de votre choix dans la liste qui apparaît. Ou choisissez-le simplement au bas de la fenêtre de description de l'erreur.

Pour créer rapidement une nouvelle classe de test PHPUnit, vous pouvez désormais utiliser l'intention Create new PHP Test en appuyant sur Alt+Entrée sur le nom d'une classe.

Améliorations des inférences de type PHP

Le noyau de PhpStorm, le moteur d'inférence de type, bénéficie de quelques belles améliorations.

Propriétés typées

Détection d'une balise @var redondante

Si la balise @var avec les informations de type est redondante et que PhpStorm connaît déjà le type correct de la variable, cette balise sera mise en évidence. Vous pouvez la supprimer avec le correctif rapide Remove @var en appuyant sur Alt+Entrée.

Fonctions fléchées

Meilleur suivi de null

Le suivi des variables null est une tâche difficile, et il y avait des endroits où PhpStorm n'était pas en mesure de les détecter. Ce n'est plus le cas pour la version 2020.1. PhpStorm vous permet de savoir si une variable est nulle ou non et vous aide à éviter les problèmes associés.

Séparateur de littéraux numériques

Saisie semi-automatique dans array_map/filter

Il existe maintenant une option de saisie semi-automatique complète pour les variables de paramètres à l'intérieur des parenthèses qui sont transmises aux fonctions array_map() et array_filter().

Opérateur ternaire imbriqué

Déduire un type de tableau non générique à partir d'un initialiseur

Si vous lancez une itération dans un tableau contenant un ensemble connu d'éléments, vous n'avez plus besoin d'une balise @var supplémentaire pour spécifier le type, car PhpStorm le propage automatiquement.

Et bien plus encore

Classement assisté par ML pour la saisie semi-automatique du code

Classement assisté par ML pour la saisie semi-automatique du code

Nous avons inauguré le classement assisté par apprentissage automatique des propositions de saisie semi-automatique pour PHP dans la version 2019.3. Cette fonctionnalité améliore la saisie semi-automatique du code en réorganisant les éléments dans la fenêtre de saisie semi-automatique afin de classer les éléments les plus pertinents en premier.

Par défaut, la saisie semi-automatique assistée par ML est désactivée. Pour l'activer, cochez les cases Rank completion suggestions based on Machine Learning et PHP dans Preferences/Settings | Editor | General | Code Completion.

Refactorisation Move method

Refactorisation Move method

Il est désormais plus facile de déplacer une méthode d'une classe à une autre, car cela peut se faire avec une seule action atomique.

Placez le curseur sur une méthode et appuyez sur F6 (ou Ctrl+T, 3). Choisissez ensuite une classe de destination et vous avez terminé.

Remplacer PHPDoc par des simples annotations de type

Remplacer PHPDoc par des simples annotations de type

Si un bloc PHPDoc n'a que des balises @param avec des types, il peut être complètement supprimé en faveur de déclarations de type natives pour les paramètres.

Appuyez sur Alt+Entrée et choisissez le correctif rapide Remove redundant PHPDoc comment.

Rechercher des expressions ternaires redondantes

Rechercher des expressions ternaires redondantes

PhpStorm mettra en évidence toutes les expressions ternaires qui peuvent être réduites et simplifiées. Et à l'aide d'un correctif rapide (Alt+Entrée), vous pouvez les remplacer par une expression simple équivalente.

Éliminer les occurrences redondantes des passages par référence

Éliminer les occurrences redondantes des passages par référence

L'utilisation du passage par référence peut avoir des conséquences inattendues. PhpStorm 2020.1 détecte et met en évidence les paramètres qui sont inutilement marqués comme passés par référence.

Il en va de même pour les valeurs by-ref redondantes dans les boucles foreach.

Métadonnées

Il existe un moyen d'étendre la « reconnaissance de code » de PhpStorm en fournissant des informations supplémentaires dans un fichier spécial, .phpstorm.meta.php. Plusieurs améliorations ont été apportées sur ce point.

Index des paramètres dans override, map et type

Index des paramètres dans override, map et type

Auparavant, avec les directives override(), map(), et type(), il n'était possible d'ajuster le comportement que pour le premier paramètre des fonctions. Dans PhpStorm 2020.1, cela a été corrigé, et il est possible de spécifier explicitement l'index du paramètre.

Fonctions fléchées

Prise en charge de l'accès à la propriété via __get

Si vous deviez recevoir certains objets via la méthode magique __get(), vous perdriez probablement les informations de type. Au lieu d'utiliser des balises @var ou @property, vous pouvez désormais spécifier ces informations dans un fichier .phpstorm.meta.php. Et ce, même si le type n'est pas connu à l'avance.

Points de sortie personnalisés

Points de sortie personnalisés

PhpStorm considère que les fonctions die() et exit(), ou toute fonction lançant une exception, terminent les appels. Mais dans les applications, il peut y avoir d'autres fonctions personnalisées qui doivent être considérées comme des « points de sortie », par exemple, dans des fonctions de débogage comme dd(). Il est désormais possible de désigner n'importe quelle fonction comme point de sortie.

Saisie semi-automatique des clés dans les objets ArrayAccess

Saisie semi-automatique des clés dans les objets ArrayAccess

L'assistance aux métadonnées permettait déjà de conserver l'accès à la saisie semi-automatique du code même si vous vouliez utiliser un objet comme conteneur de tableau pour d'autres objets. Cependant, la saisie semi-automatique n'était pas disponible pour les clés. La version 2020.1 corrige ce problème.

Icône de gouttière pour les fonctions avec méta-remplacements

Icône de gouttière pour les fonctions avec méta-remplacements

Enfin, dans l'éditeur, vous verrez maintenant si un comportement a été modifié par le fichier .phpstorm.meta.php avec les directives override(), exitPoint(), ou expectArguments(). Et comme le projet peut compter plusieurs de ces métafichiers, en cliquant sur l'icône, vous ouvrirez celui qui est utilisé à cet endroit spécifique.

Client HTTP

Débogage PHP dans le client HTTP

Débogage PHP dans le client HTTP

Lorsque vous développez des applications Web ou des points de terminaison API, vous pouvez désormais démarrer facilement le débogage sans quitter la fenêtre PhpStorm.

Pour ce faire, créez ou ouvrez un fichier .http, ajoutez une requête, puis utilisez l'intention Alt+Entrée pour exécuter PHP Debug. Cela ajoutera un cookie XDEBUG_SESSION à la requête. Ce processus fonctionne de manière similaire à l'extension de navigateur Xdebug.

Technologies Web

Toutes les nouvelles fonctionnalités et améliorations de WebStorm 2020.1 sont disponibles dans PhpStorm 2020.1, soit automatiquement, soit par le biais de plugins gratuits disponibles dans la boutique Plugin Marketplace.

Nouvelles intentions et inspections intelligentes pour JavaScript et TypeScript

Nouvelles intentions et inspections intelligentes pour JavaScript et TypeScript

Utilisez les nouvelles intentions et inspections intelligentes (Alt+Entrée) pour gagner du temps lors du codage ! Par exemple, vous pouvez désormais convertir rapidement le code existant en chaînage facultatif et/ou en coalescence nulle, la syntaxe introduite dans les dernières versions de JavaScript et TypeScript.

Prise en charge de Vuex et de l'API Composition pour Vue.js

Prise en charge de Vuex et de l'API Composition pour Vue.js

Grâce à la prise en charge prête à l'emploi de la bibliothèque Vuex et de l'API Composition de la prochaine Vue 3, vous pouvez créer de superbes applications Vue.js encore plus facilement.

Exécution de Prettier lors de la sauvegarde

Exécution de Prettier lors de la sauvegarde

La nouvelle option Run on save for files permet à WebStorm d'appliquer la mise en forme Prettier à tous les fichiers spécifiés dans les paramètres de l'IDE et modifiés dans le projet dès que vous enregistrez ces fichiers. Vous n'avez plus besoin d'un observateur de fichier ou d'une extension tierce.

IDE

Outil de vérification orthographique et grammaticale

Outil de vérification orthographique et grammaticale

L'extension de correction orthographique et grammaticale avancée Grazie est désormais disponible et prête à l'emploi. Obtenez une mise en évidence instantanée des fautes de frappe et des erreurs et corrigez-les avec une action de correctif rapide, comme toutes les autres erreurs de code.

La vérification orthographique est activée par défaut dans les fichiers markdown. Pour bénéficier de ces vérifications dans les commentaires PHPDoc, les chaînes HEREDOC/NOWDOC ou les littéraux de chaîne dans les fichiers PHP, vous devez l'activer sous Preferences/Settings | Editor | Proofreading | Grammar.

Pour accéder à des vérifications grammaticales encore plus profondes, vous pouvez activer l'inspection Grammar dans Preferences/Settings | Editor | Inspections -> Proofreading.

Utilisation de PhpStorm pour des modifications rapides

Utilisation de PhpStorm pour des modifications rapides

Un nouveau mode LightEdit permet d'utiliser PhpStorm en tant qu'éditeur léger de type bloc-notes pour apporter des modifications rapides sans devoir ouvrir entièrement l'IDE.

Pour l'essayer, ouvrez un fichier à partir de la ligne de commande (voir Working with IDE features from command line (Travailler avec les fonctionnalités d'IDE à partir de la ligne de commande) pour obtenir des instructions supplémentaires) ou à partir du gestionnaire de fichiers de votre système d'exploitation. Et si PhpStorm n'est pas déjà en cours d'exécution, le fichier s'ouvre alors en mode LightEdit.

Personnalisation du format de date

Fractionner les sessions de terminal horizontalement ou verticalement

Il est maintenant possible d'ouvrir un nombre illimité de sessions de terminal à la fois et d'observer la sortie sur chacune d'entre elles simultanément sans basculer entre les onglets.

Vous pouvez appeler le menu contextuel à partir du terminal pour créer une session de terminal fractionnée, y naviguer et la fermer.

Configuration SSH unifiée

Configuration SSH unifiée

Toutes les connexions SSH sont désormais regroupées en un seul endroit sous Preferences/Settings | Tools | SSH Configurations.

Cela permet de créer une connexion depuis un emplacement central, puis de la réutiliser n'importe où dans l'IDE, par exemple dans la configuration de déploiement, pour l'interpréteur PHP distant via SSH, ou en tant que terminal SSH.

Apparence

Thème clair mis à jour

Thème clair mis à jour

Le thème clair est désormais unifié pour tous les systèmes d'exploitation et prend le nom IntelliJ Light. Si vous souhaitez revenir à l'ancien thème, vous pouvez basculer dans Preferences/Settings | Appearance & Behavior | Appearance | Theme.

Personnalisation du format de date

Nouvelle police de caractères par défaut

JetBrains Mono est une police de caractères gratuite et open source que nous avons conçue spécialement pour les développeurs afin de faciliter la lecture du code. Et elle est maintenant utilisée comme police d'édition par défaut.

Mode de développement sans distraction

Mode de développement sans distraction

Le nouveau Mode Zen combine le mode sans distraction et le mode plein écran, afin que vous puissiez vous plonger profondément dans votre code.

Pour essayer le Mode Zen, cliquez sur View | Appearance | Enter Zen Mode.

Contrôle de version

Remaniement de la boîte de dialogue pour Git Rebase

Remaniement de la boîte de dialogue pour Git Rebase

La boîte de dialogue Interactively Rebase from Here est désormais véritablement interactive et permet de contrôler tous les aspects du processus de rebasing :

  • Sélectionner une action que vous souhaitez effectuer sur chaque commit de votre branche.
  • Consultez un graphique montrant quelles actions ont été appliquées.
  • Afficher les détails des commits.
  • Consultez un diff et révisez ou réinitialisez les modifications si nécessaire.
Push de n'importe quelle branche

Modifications du flux de commit

Afin de simplifier le flux de commit, nous avons développé une nouvelle fenêtre Commit tool pour gérer toutes les tâches liées aux commits. Cet outil est activé par défaut pour tous les nouveaux utilisateurs.

Si vous êtes déjà utilisateur et souhaitez l'essayer, sélectionnez Use non-modal commit interface dans Preferences/Settings | Version Control | Commit.

Outils de base de données

L'équipe DataGrip a apporté de très intéressantes améliorations aux outils de base de données dans PhpStorm. Découvrez les Nouveautés de DataGrip 2020.1.

Exporter vers Excel

Exporter vers Excel

Enfin, il est possible d'exporter un résultat de requête ou un tableau vers un fichier Excel.

Résultats dans l'éditeur

Résultats dans l'éditeur

Vous pouvez maintenant consulter les résultats directement dans l'éditeur de code. Pour essayer cette fonctionnalité, cochez l'option Preferences/Settings | Database | General | Show output results in the editor.

Run configurations

Run configurations

Le concept des configurations d'exécution est déjà connu des utilisateurs de PhpStorm. En plus d'exécuter des scripts PHP, des tests ou des requêtes HTTP, il est désormais également possible d'exécuter des requêtes DB.

Autres améliorations:

  • Tous les membres et éléments signalés comme @deprecated sont affichés mais barrés dans l'arborescence Structure.
  • Il existe une nouvelle action pour accéder rapidement à l'accolade de fermeture ou d'ouverture.
  • La syntaxe des éléments lexicaux pour Twig peut désormais être personnalisée.
  • Le chemin d'accès aux fichiers de configuration a changé - en savoir plus.
  • Les configurations d'exécution peuvent être enregistrées en dehors du dossier .idea et partagées via le contrôle de version. Ouvrez la boîte de dialogue Run/Debug Configurations, cochez l'option Store as project file.