Nouveautés de PhpStorm 2019.3

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

Prise en charge de PHP 7.4

PHP 7.4 est maintenant disponible et PhpStorm 2019.3 prend en charge toutes ses nouvelles fonctionnalités. L'IDE propose également des inspections pour mettre en évidence les éléments obsolètes et des correctifs rapides afin de mettre à niveau votre base de code.

Propriétés typées

Propriétés typées

Nous avons intégré les propriétés typées depuis la version 2019.2. Dans la v2019.3, les correctifs rapides peuvent gérer toutes les situations critiques et vous pouvez ajouter des déclarations de type rapidement et facilement en appuyant sur Alt-Entrée puis en choisissant Add declared type for the field. PhpStorm détecte le type automatiquement en fonction du PHPDoc, de la valeur par défaut ou de la déclaration de type d'argument dans le constructeur.

Fonctions fléchées

Fonctions fléchées

PhpStorm prend entièrement en charge la toute nouvelle syntaxe courte pour les fonctions lambda d'une ligne en PHP 7.4. L'EDI propose la saisie automatique des variables depuis la portée externe et vous amène en un clic à la déclaration.

Un correctif rapide pour convertir les fonctions lambda d'une ligne utilisant l'ancienne syntaxe vers la nouvelle syntaxe raccourcie est également disponible. Appuyez simplement sur Alt-Entrée sur une fonction anonyme, puis sélectionnez Convert closure to arrow function.

Séparateur de littéraux numériques

Séparateur de littéraux numériques

Dans PHP 7.4, vous pouvez ajouter des tirets bas de séparation à un nombre long pour améliorer l'aspect visuel et la lisibilité de votre code.

Si vous voyez un long nombre, placez le caret dessus, appuyez sur Alt+Entrée, puis sélectionnez Add number separators. Cette opération permet d'ajouter un tiret bas '_' tous les 3 chiffres pour les nombres décimaux, ou tous les quatre chiffres pour les modes hexadécimal, binaire et octal.

Opérateur ternaire imbriqué

Opérateur ternaire imbriqué

PHP 7.4 rend obsolète l'associativité résiduelle des opérateurs ? : imbriqués. Il est donc recommandé d'éviter les ternaires imbriqués, ou, si vous devez y avoir recours, d'utiliser des parenthèses pour déclarer explicitement l'ordre des calculs.

PhpStorm 2019.3 mettra en évidence les expressions obsolètes et vous fournira un correctif rapide pour clarifier leur comportement.

Fonctionnalités obsolètes

Fonctionnalités obsolètes

Cette version de PHP ne s'est pas contentée d'ajouter de nouvelles fonctionnalités. Elle en a aussi passé beaucoup d'anciennes en phase d'obsolescence.

PhpStorm 2019.3 possède les inspections correspondantes et mettra en évidence les morceaux de code requérant votre attention. Dans tous les cas où c'est possible, vous aurez la possibilité de corriger rapidement le comportement obsolète automatiquement.

Retours de covariant et paramètres de contravariant

Retours de covariant et paramètres de contravariant

PHP 7.4 corrige de nombreuses incohérences, notamment en ce qui concerne le système de types. Lorsque vous travaillez avec une méthode héritée d'une classe parente, il est maintenant possible de définir un type de retour plus précis et des types de paramètres moins spécifiques pour ce type de retour.

PSR-12

Par rapport à l'ancienne norme PSR-2, la nouvelle norme PSR-12 du style de code ajoute des règles supplémentaires et des directives pour certaines des nouvelles fonctionnalités PHP. PhpStorm 2019.3 propose un style de code PSR-12 prédéfini, et l'IDE vous suggère de l'utiliser. Vous pouvez également basculer manuellement vers la nouvelle norme à l'aide de l'action Set from… dans Preferences | Editor | Code Style | PHP.

PhpStorm suggère également d'activer un ensemble d'inspections du style de code PSR-12, qui permettent de contrôler les violations de certaines règles.

Vous pouvez reformater votre code dans l'éditeur en appuyant sur Cmd+Alt+L, ou l'exécuter avant un commit. Vous pouvez également reformater l'ensemble de votre projet ou dossier avec Code > Code Cleanup...

WSL

WSL pour ajouter un interpréteur

Le sous-système Windows pour Linux est une couche de compatibilité permettant d'exécuter des fichiers binaires Linux exécutables en natif sous Windows 10. PhpStorm prend désormais en charge le développement dans un environnement WSL, c'est-à-dire si vous lancez l'IDE sur une machine Windows, mais que vous développez pour WSL/Linux. Vous pouvez indiquer un interpréteur PHP distant dans WSL et l'utiliser pour exécuter des scripts des tests et des commandes Composer, ainsi que pour le débogage.

Indiquez l'interpréteur à utiliser pour les configurations d'exécution de test PHP

Indiquez l'interpréteur à utiliser pour les configurations d'exécution de test PHP

Vos configurations d'exécution de test pouvaient auparavant uniquement être lancées par l'interpréteur PHP par défaut du projet, ce qui pouvait présenter des inconvénients.

Ce n'est plus le cas. Dans PhpStorm 2019.3, vous pouvez choisir un interpréteur configuré à votre convenance pour exécuter vos tests : Docker, Vagrant, par SSH, WSL,, etc. à votre guise, le choix est vaste !

Et bien plus encore

Améliorations PHPDoc

Améliorations PHPDoc

Traditionnellement dans PhpStorm tout le bloc PHPDoc s'affichait d'une même couleur, avec un style identique aux autres commentaires.

Les blocs doc bénéficient maintenant d'une mise en évidence complète pour tous les types, variables params, méthodes et propriétés. Si vous avez du code HTML dans vos commentaires, il sera également mis en évidence en tant que tel.

Polices et couleurs pour la variable $this

Polices et couleurs pour la variable $this

Vous pouvez choisir la police et les couleurs des occurrences de $this : accédez à Preferences | Editor | Color Scheme | PHP | Identifiers et personnalisez-les à votre convenance.

Mise en évidence du code PHP dans Markdown et les chaînes de caractères

Mise en évidence du code PHP dans Markdown et les chaînes de caractères

Dans PhpStorm 2019.3, les blocs de code PHP dans les fichiers Markdown seront automatiquement mis en évidence si vous utilisez ‘php' comme chaîne info. Vous pouvez également bénéficier de la mise en évidence du code PHP pour les autres chaînes de caractères grâce à un dialecte PHP spécial appelé InjectablePHP, qui fonctionne de façon similaire à PHP, mais ne nécessite pas de balise d'ouverture.

Actions contextuelles pour if-else
Extract assignment (extraire la déclaration)

Extract assignment (extraire la déclaration)

Merge nested conditions (fusionner des conditions imbriquées)

Merge nested conditions (fusionner des conditions imbriquées)

Merge else followed by if (fusionner else suivi par if)

Merge else followed by if (fusionner else suivi par if)

Client HTTP

Consultez ce court tutoriel vidéo sur l'utilisation du Client HTTP dans PhpStorm pour voir comment faire des requêtes comme un pro.

Barre d'outils

Barre d'outils

Dès que vous ouvrez un fichier .http, vous obtenez maintenant une barre d'outils qui vous donne un accès rapide à toutes les actions courantes :

  • Add request : créer des requêtes à partir de modèles.
  • Convert form cURL : créer des requêtes en collant une cURL dans l'éditeur.
  • Open Log : afficher la liste des requêtes envoyées et ouvrez/comparez les réponses.
  • Examples : parcourir une collection de requêtes HTTP pratiques.
Variables dynamiques

Variables dynamiques

Nous avons ajouté trois variables dynamiques que vous pouvez utiliser dans les requêtes :

  • $uuid – Génère un nouvel UUID-v4.
  • $timestamp : horodatage Unix actuel.
  • $randomInt : un entier aléatoire entre 0 et 1 000.

Utilisez des accolades doubles pour insérer ces variables où vous le souhaitez.

Tout exécuter

Tout exécuter

Vous pouvez écrire plusieurs requêtes dans un même fichier .http. C'est assez pratique si vous avez besoin de formuler des chaînes de requêtes dans lesquelles une requête dépend du résultat des précédentes.

Précédemment, vous deviez exécuter chaque requête une par une. Dans PhpStorm 2019.3, vous pouvez toutes les exécuter d'un seul clic !

Folding requests

Folding requests

Si vous envoyez une requête avec un corps assez long, par exemple des données de formulaire en plusieurs parties ou plusieurs en-têtes vous pouvez souhaiter la replier pour réduire les distractions dans l'éditeur.

Vous pouvez replier l'ensemble de la requête en ne gardant que la première ligne ou le corps en cliquant sur l'icône de flèche dans la gouttière.

Technologies Web

Comme d'habitude, toutes les nouvelles fonctionnalités et améliorations de WebStorm 2019.3 sont disponibles dans PhpStorm2019.3, soit automatiquement, soit par le biais de plugins gratuits disponibles dans la boutique Plugin Marketplace.

Prise en charge de Vue.js encore plus avancée

Prise en charge de Vue.js encore plus avancée

Grâce à la nouvelle intention Propagate to destructuring Alt+Entrée, vous pouvez remplacer une variable supplémentaire par une déstructuration. Pour supprimer complètement une déstructuration, utilisez l'action d'intention Replace destructuring with property or index access.

L'IDE vous avertit désormais si l'expression booléenne d'une condition comporte des parties inutiles, et vous suggère de la simplifier.

Saisie automatique pour les bibliothèques CSS sur CDN

Saisie automatique pour les bibliothèques CSS sur CDN

Lorsque vous renommez un symbole dans un fichier JavaScript ou TypeScript, l'IDE regroupe maintenant les utilisations dynamiques et, par défaut, les exclut de la refactorisation. Cela permet d'améliorer la précision de la refactorisation et vous donne plus de contrôle sur ce qui doit précisément être renommé dans la fenêtre d'outils Refactoring Preview.

Suggestions de noms pour les nouveaux symboles

Suggestions de noms pour les nouveaux symboles

Vous utilisez Vuetify ou BootstrapVue dans votre application Vue.js ? La saisie automatique du code pour les composants et leurs accessoires, à partir de ces bibliothèques de composants Vue et d'autres, est maintenant plus précise. Une nouvelle approche de la manipulation de ces bibliothèques dans l'IDE a rendu cela possible.

Contrôle de version

Nouvelle interface utilisateur pour cloner les projets à partir du VCS et de GitHub

Nouvelle interface utilisateur pour cloner les projets à partir du VCS et de GitHub

Si vous clonez un projet à partir d'un système de contrôle des versions, que ce soit à partir de l'écran d'accueil de l'IDE ou depuis le menu VCS, vous verrez une boîte de dialogue Get from Version Control actualisée.

Ce remaniement devrait nous permettre d'améliorer l'expérience de récupération d'un projet à partir de votre compte GitHub. Vous pouvez maintenant sélectionner GitHub sur la gauche de la boîte de dialogue et vous connecter à votre compte directement.

Push de n'importe quelle branche

Push de n'importe quelle branche

Vous pouvez à présent envoyer en push les modifications de la branche de votre choix directement depuis la fenêtre contextuelle Branches. Sélectionnez une branche puis utilisez l'action Push du menu.

Auparavant, vous ne pouviez envoyer les modifications en push que depuis la branche dans laquelle vous étiez en train de travailler, et pour le faire, vous deviez d'abord basculer vers cette branche pour déclencher le push.

Personnalisation du format de date

Personnalisation du format de date

Parfois, il est plus facile de comprendre les informations du journal des historiques de versions si la date et l'heure s'affichent dans un format relatif comme jj/mm/aaaa ou mm/jj/aaaa si vous vous trouvez aux États-Unis.

Dans PhpStorm 2019.3, il est possible de configurer le format de la date pour les actions VCS Annotate et VCS Log.

Outils de base de données

Les outils de bases de données de PhpStorm ont bénéficié de plusieurs améliorations grâce à nos collaborateurs de l'équipe DataGrip . Découvrez les Nouveautés de DataGrip 2019.3.

Prise en charge de MongoDB

La très attendue prise en charge de MongoDB est enfin arrivée dans les IDE de JetBrains, dont PhpStorm. Elle s'accompagne de la possibilité d'afficher les collections et les champs dans l'explorateur de base de données et de consulter les données, notamment en mode arborescence. Vous pouvez également trier par colonnes ou filtrer les valeurs, mais aussi, fonction non négligeable, exécuter des requêtes directement depuis l'IDE.

Autres améliorations:

  • Accélération du démarrage : vous n'avez plus besoin d'attendre aussi longtemps l'affichage de l'écran d'accueil et l'ouverture des projets déjà indexés dans l'IDE.
  • Amélioration de la gestion des extensions : l'IDE n'a plus besoin de redémarrer lors de l'ajout ou de la suppression d'extensions de thème.
  • Amélioration de la prise en charge de Kubernetes à l'aide de l'extension.
  • Barres de défilement contrastées : accédez à Preferences/Settings | Appearance & Behavior | Appearance et activez “Use contrast scrollbars”.
  • Cherchez dans une zone sélectionnée avec l'action Find.
  • Défilement fluide avec la souris : Preferences | Appearance & Behavior | Appearance > Smooth scrolling.