PhpStorm 2019.2: propriétés typées PHP 7.4, recherche de doublons, EditorConfig, scripts de shell, etc.



Bonjour à tous! Nous sommes heureux de vous présenter la deuxième version majeure de PhpStorm cette année!


Un aperçu de la version est disponible sur la page « Quoi de neuf ». Et sous la coupe, une analyse détaillée de tous les changements notables et de nouvelles fonctionnalités. (Attention - beaucoup de photos!)


Vous pouvez télécharger la nouvelle version sur le site Web ou en utilisant l' application Toolbox . Comme toujours, un essai de 30 jours est disponible. La version complète peut être utilisée par les détenteurs d'un abonnement actif au pack PhpStorm ou All Products, ainsi que par les étudiants gratuits et les développeurs de projets open source.



PHP 7.4: propriétés typées


PHP 7.4 promet d'être la version la plus cool et la plus riche en fonctionnalités depuis PHP 7.0! Regardez tous les RFC acceptés .


La fonctionnalité la plus attendue est, bien sûr, les propriétés typées , et PhpStorm 2019.2 les prend déjà entièrement en charge! Y compris le rétroéclairage, la sortie et la résolution de type, ainsi que toutes sortes de vérifications.


Si vous essayez de mettre quelque chose dans la propriété, PhpStorm vous en avertira immédiatement.



Mais afin de préparer la migration vers PHP 7.4, qui sortira fin novembre, PhpStorm propose des solutions rapides. Pour déclarer un type, vous pouvez appuyer sur Alt+Enter sur une propriété sans type et sélectionner Ajouter un type déclaré pour le champ . PhpStorm déterminera le type d'une propriété en fonction des informations contenues dans PHPDoc, la valeur par défaut ou une déclaration de type d'argument si la propriété est injectée via un constructeur.



?? = opérateur (affectation de fusion nulle)


Le nouvel opérateur d'affectation de vérification null court est assez pratique pour les expressions volumineuses.


Dans PhpStorm, bien sûr, la syntaxe est prise en charge, mais il existe toujours une solution rapide Alt+Enter pour remplacer ?? si possible:



L'opérateur de décompression (...) dans les tableaux


PHP supporte le déballage des arguments à l'aide d'un opérateur depuis la version 5.6. Dans la prochaine version de PHP, l'opérateur peut être utilisé dans les tableaux:



PhpStorm analysera l'exactitude de l'utilisation de l'opérateur et s'assurera que vous décompressez uniquement les tableaux ou les objets Traversable et n'essayez pas de faire par erreur quelque chose qui n'est pas pris en charge par l'interpréteur PHP:



Dans la prochaine version de PhpStorm 2019.3, nous prévoyons d'implémenter une prise en charge complète et des correctifs rapides pour toutes les nouvelles fonctionnalités de PHP 7.4, y compris les fonctions fléchées, les délimiteurs en littéraux numériques, etc.

Auto-injection d'expressions régulières en PHP


Dans les versions précédentes de PhpStorm, les expressions régulières dans le code PHP n'étaient pas mises en surbrillance par défaut et affichées comme des chaînes régulières. Bien sûr, vous pouvez implémenter le langage RegExp manuellement, mais vous ne le ferez pas tout au long du projet.


PhpStorm 2019.2 ajoute un support complet pour les habitués en PHP! Cela signifie que lorsque les fonctions preg_*, sont utilisées dans le code preg_*, modèles seront mis en évidence et vérifiés pour leur validité.



De plus, vous pouvez maintenant tester l'expression régulière directement dans l'IDE! Passez la souris sur le modèle, appuyez sur Alt+Enter et appelez Check RegExp .



Surlignage de code en double à la volée


La recherche de doublons dans PhpStorm existe depuis un certain temps, dans le menu Code → Localiser les doublons. Si vous ne l'avez pas encore essayé, essayez-le - et soyez surpris du nombre de répétitions dans le projet!


Dans cette version, l'analyse de duplication a atteint un nouveau niveau et fonctionne à la volée directement dans l'éditeur. Si vous avez copié à plusieurs reprises ou écrit accidentellement les mêmes morceaux, vous le saurez instantanément.


Vous pouvez accéder à un autre doublon ou tout afficher dans une liste dans une fenêtre distincte:



Soit dit en passant, ce sont de bons candidats pour la refactorisation d' extrait .

La nouvelle inspection est appelée fragment de code dupliqué et est activée par défaut. Le seuil de sensibilité peut être défini dans Préférences | Editeur | Inspections | Général | Fragment de code dupliqué -> PHP . Et dans les préférences | Editeur | Doubles, vous pouvez définir quels éléments sont ignorés lors de la recherche de doublons, par exemple, vous pouvez ignorer différents noms de variables, méthodes ou propriétés, ainsi que des valeurs constantes.


Prise en charge du format PHPT


Souhaitez-vous contribuer à PHP lui-même et rejoindre PHP Internals? La meilleure façon est de commencer par la documentation et les tests! Heureusement, vous n'avez pas besoin de connaître C. Pour cela, les tests pour PHP sont écrits dans des fichiers spéciaux .phpt . En fait, il s'agit d'un fichier texte, divisé en plusieurs sections, dont certaines peuvent contenir du code PHP.


Donc, dans PhpStorm 2019.2, il existe également un support pour les fichiers phpt! Les sections sont mises en surbrillance, PHP et INI sont automatiquement implémentées si nécessaire, les transitions vers des fichiers externes dans les sections correspondantes fonctionnent.



Plus d'informations sur l'écriture de tests pour PHP sont ici: Tutoriels PHP TestFest , PHP Internals Book et qa.php.net .


Exécution de Composer via n'importe quel interpréteur PHP


Auparavant, pour exécuter Composer, vous aviez toujours besoin d'un interpréteur PHP local. Le problème est qu'il peut ne pas exister du tout ou que l'environnement peut ne pas correspondre à la production. Maintenant, dans PhpStorm 2019.2, vous pouvez exécuter Composer via n'importe quel interpréteur configuré dans l'IDE. Par exemple, via Docker, Docker-compose, Vagrant ou, disons, un serveur distant via SSH.


Pour essayer cette fonctionnalité, sélectionnez Interpréteur distant dans Préférences | Langues et cadres | Php | Compositeur



Sélectionnez un interprète existant ou ajoutez-en un nouveau!


Corrections rapides


Nous divisons la liste en plusieurs lignes et vice versa


Selon le PSR-2 , une ligne de plus de 80 caractères devrait être divisée en plusieurs lignes, chacune de moins de 80 caractères. Par conséquent, si vous avez un grand tableau ou si les arguments / paramètres de la fonction ne tiennent pas à l'écran, vous pouvez appuyer sur Alt+Enter et sélectionner Diviser les valeurs séparées par des virgules en plusieurs lignes:



Si soudain, à la suite d'une refactorisation, la liste devient plus courte et tient sur une seule ligne, alors l'action inverse est également disponible: Joignez des valeurs séparées par des virgules sur une seule ligne .


Au fait, ici, vous devrez peut-être ajuster rapidement les paramètres de style de code. Pour ne pas rechercher les options nécessaires pendant une longue période, sélectionnez ce morceau de code, appuyez sur Alt+Enter et appelez Ajuster les paramètres de style de code . PhpStorm proposera de modifier uniquement les options pertinentes pour les lignes sélectionnées:



Construction de commutateur


Nous avons mis en place la possibilité d'ajouter rapidement des branches pour changer de conception. Appuyez sur Alt+Enter sur l'expression de casse sans le corps et appelez Copier la branche 'switch' .


N'oubliez pas de modifier la branche copiée, sinon PhpStorm mettra en surbrillance la partie répétitive:



PhpStorm 2019.2 avertira également s'il n'y a pas de branche par défaut dans le switch , et vous pouvez également l'ajouter à l'aide d'une solution rapide.


Manipulation de chaînes


PhpStorm vous aidera avec les opérations de chaîne de routine. Quoi que vous ayez à faire avec la chaîne - divisez-la en morceaux, changez les guillemets, convertissez la concaténation en sprintf ou interpolation, ou autre chose - appuyez sur Alt+Enter sur la chaîne et sélectionnez l'action souhaitée dans la liste.


Dans cette version, nous avons ajouté quelques nouvelles puces à cette liste.


Supposons que vous ayez une expression longue dans sprintf et que vous ayez besoin d'ajouter un autre paramètre au lieu d'une sous-chaîne. Sélectionnez-le, appuyez sur Alt+Enter , sélectionnez Extraire la partie de chaîne sélectionnée comme argument de fonction de formatage , et PhpStorm mettra le paramètre au bon endroit:



Vous pouvez également séparer la sous-chaîne par concaténation:



Aperçu pour la recherche structurelle


La recherche structurelle, ou SSR pour faire court, est un outil puissant qui vous permet de rechercher des morceaux de code non seulement sous forme de texte, mais comme de petits arbres de syntaxe, tout en indiquant les types de nœuds ou d'autres filtres. Essayez-le: Edition -> Rechercher -> Rechercher structurellement ...


Le problème avec la recherche structurelle est que la description d'un modèle de recherche peut être une tâche non triviale. Dans PhpStorm 2019.2, heureusement, vous pouvez maintenant voir la mise en évidence en temps réel dans l'éditeur. Il n'est pas nécessaire d'exécuter la recherche encore et encore pour déboguer le modèle.


Imaginez, par exemple, que vous souhaitez rechercher tous les appels à une méthode particulière d'une classe, mais uniquement ceux dans lesquels un objet d'une autre classe spécifique est passé en paramètre. Il sera difficile de trouver cela avec une recherche régulière, mais avec un SSR - à la fois!



Client HTTP


Prise en charge du format CURL


Presque tous les outils de développement et de documentation Web offrent désormais la possibilité de copier une requête sous forme de chaîne cURL.


Maintenant, cette ligne peut être utilisée dans PhpStorm. Créez un fichier avec l'extension .http ou un nouveau fichier de travail de requête HTTP à l'aide du raccourci clavier Cmd+Shift+N (Ctrl+Shift+Alt+Insert) , puis insérez la chaîne de requête cURL. Il sera automatiquement converti en requête complète, puis vous pourrez facilement tester les en-têtes et autres paramètres de requête.



Le client HTTP stocke les cookies


Supposons que vous testiez un service et fassiez une demande d'authentification, puis dans la prochaine demande, appelez un point de terminaison privé. Auparavant, un cookie contenant les informations de session de la première demande était perdu. Et en 2019.2, tous les cookies sont stockés et transmis dans les demandes ultérieures.



Si vous ne souhaitez pas que les cookies soient enregistrés, utilisez la balise @no-cookie-jar pour une demande spécifique.


Contrôle de version


Une nouvelle façon de s'engager sans dialogue


Supposons que vous modifiez plusieurs fichiers dans différents dossiers d'un projet. Pour les valider, vous allez dans l'onglet Modifications locales de la fenêtre Contrôle de version , sélectionnez les fichiers nécessaires et appelez la boîte de dialogue de validation. À ce stade, tout est bloqué par une fenêtre contextuelle et vous ne pouvez pas voir le projet.


Dans PhpStorm 2019.2, vous pouvez valider directement à partir de l'onglet Modifications locales .

Maintenant, en travaillant sur la validation, vous pouvez afficher l'intégralité du projet, l'historique et, en général, faire n'importe quoi dans l'EDI.



La fonctionnalité est désactivée par défaut. Pour l'essayer, cochez «Valider à partir des modifications locales sans afficher de boîte de dialogue» dans Préférences | Contrôle de version | Boîte de dialogue de validation.


Rappels de fichiers associés


Lorsque vous effectuez une validation, PhpStorm 2019.2 peut vous dire d'ajouter des fichiers qui changeaient fréquemment avec ceux que vous avez déjà sélectionnés pour la validation.



Amélioration du travail avec .gitignore


PhpStorm prend en charge .gitignore à l' .gitignore et met en surbrillance les fichiers ignorés dans la vue Projet .


Il est devenu un peu plus facile à ajouter à .gitignore . Cela peut être fait dans la fenêtre Contrôle de version en appelant Ajouter à .gitignore dans le menu contextuel sur les fichiers qui n'ont pas encore été ajoutés au système de contrôle de version.



Le fichier .gitignore maintenant un chemin d'accès complet et, par Cmd+click fichier sera mis en surbrillance dans la vue Projet .



Vous pouvez masquer les colonnes auteur, données ou hachage dans le journal.



Comparaison de l'état actuel avec n'importe quelle branche


Pour ce faire, il suffit d'appeler la commande Afficher la différence avec l'arbre de travail dans la fenêtre contextuelle Git Branches , qui s'affiche en cliquant sur le nom de la branche actuelle dans le coin inférieur droit.



Historique du répertoire depuis la vue du projet


Vous pouvez sélectionner plusieurs dossiers dans la vue du projet et voir l'historique des modifications pour eux à l'aide de Git | Afficher l'historique à partir du menu contextuel.



Docker


Nous avons déplacé Docker vers la nouvelle fenêtre Services . Le but de cette fenêtre est de rassembler toutes les connexions et les processus en cours d'exécution en un seul endroit. Jusqu'à présent, par défaut, PhpStorm inclut des connexions Docker et base de données. Vous pouvez également ajouter toutes les configurations Run / Debug à la fenêtre Services . Ceci est disponible dans la section Configurations disponibles dans les services de Exécuter | Modifier les configurations ...


Tous les services sont affichés en tant que nœuds, mais chacun d'eux peut être transformé en un onglet distinct en appelant Afficher dans un nouvel onglet ou en faisant simplement glisser le nœud avec le titre de la fenêtre Services .



Afficher le système de fichiers de conteneur Docker


Vous pouvez parcourir le contenu du conteneur sous l'onglet Fichiers .



L'éditeur


Saisie du code de saisie


Si vous avez soudainement écrit funtcion ou fnction au lieu de function , ce n'est pas effrayant, car le module complémentaire fonctionnera de toute façon, car il reconnaît ce type de faute de frappe.



Cela fonctionne dans toutes les langues et pour tous les caractères - mots-clés, classes, fonctions, propriétés, méthodes, etc.


Configuration du comportement «Déplacer le curseur vers le mot suivant»


Vous pouvez choisir où le curseur sera placé lors du déplacement dans les mots. Voir la section Mouvement du curseur dans Préférences | Editeur | Général


<


Aller au-delà des crochets et des guillemets lorsque vous appuyez sur Tab


L'ancienne puce est maintenant activée par défaut. Lorsque vous tapez et appuyez sur Tab, au lieu d'ajouter un caractère de tabulation, votre curseur se déplacera au-delà des guillemets et des parenthèses. Pour désactiver cette fonction, décochez la case Sauter hors du crochet de fermeture / guillemet avec Tab lors de la frappe dans la fenêtre Préférences | Editeur | Général | Clés intelligentes



Le code en surbrillance est automatiquement entouré de guillemets ou de crochets


Une autre fonctionnalité super utile est désormais activée par défaut. Lorsque vous cliquez sur un devis (ou une parenthèse) pour sélectionner un morceau de code, des citations (ou des parenthèses) seront automatiquement ajoutées au début et à la fin de la sélection.



Si vous n'aimez pas ce comportement, vous pouvez le désactiver en vérifiant la sélection Surround en tapant citation ou accolade dans Préférences | Editeur | Général | Clés intelligentes


Nouvelle disposition par défaut sur macOS


Nous avons changé la disposition par défaut sur macOS de Mac OS X à macOS 10.5+. Nous avons également renommé les dispositions: Mac OS X 10.5 s'appelle désormais Default pour macOS, et l'ancien Mac OS X est désormais IntelliJ IDEA Classic.


Mise en évidence de la syntaxe pour plus de 20 langues


Si votre projet contient des fichiers dans des langages de programmation autres que PHP et JavaScript, alors PhpStorm 2019.2 vous serez agréablement surpris par la mise en évidence de la syntaxe pour Python, Ruby, Go et tout un tas d'autres langages. Cela fonctionne hors de la boîte et ne nécessite aucun paramètre supplémentaire.


Avec cela, nous voulons améliorer l'expérience d'utilisation de PhpStorm pour les utilisateurs qui ont parfois besoin de regarder du code dans d'autres langues. PhpStorm est toujours principalement un environnement de développement PHP et Web , nous ne prévoyons donc pas d'étendre la prise en charge d'autres langages au-delà de la portée de la mise en évidence.



La coloration syntaxique pour les langues supplémentaires est basée sur les grammaires TextMate. Consultez la liste complète des langues prises en charge dans la boîte de dialogue Préférences | Editeur | Ensembles TextMate .


Scripts shell


Dans PhpStorm 2019.2, nous avons implémenté une prise en charge étendue des scripts shell, y compris des ajouts de chemin d'accès, la refactorisation Rename, la génération de code ( Cmd+N/Alt+Insert) et un pack de modèles en direct ( Cmd+J/Ctrl+J) .



Intégration également implémentée avec plusieurs outils externes.


Pour rechercher des problèmes potentiels dans les scripts, PhpStorm vous proposera d'installer Shellcheck , qui trouve une tonne de problèmes et fournit des solutions rapides pour eux.


Également dans PhpStorm 2019.2, il s'intègre à l'outil mvdan / sh pour formater les scripts shell. Lorsque vous appelez Reformatage de code pour la première fois, l'EDI vous invite à l'installer puis à le formater correctement.


Et enfin, il y a intégration avec le site Web Explainshell . Vous pouvez sélectionner n'importe quelle commande, appuyez sur Alt+Enter et sélectionnez le shell Explain . L'EDI sera redirigé vers Explainshell , où vous pourrez voir ce que signifie l'ensemble sélectionné. Lorsque vous survolez une commande directement dans l'EDI, une aide s'affiche également.



EditorConfig


En ajoutant le fichier .editorconfig , vous rendez le développement dans l'équipe plus agréable, car certaines options de style fonctionneront de la même manière pour tous, quel que soit l'éditeur utilisé.


Auparavant, dans PhpStorm, il était nécessaire d'installer le plugin EditorConfig, mais en 2019.2, il est disponible prêt à l'emploi et aucune étape supplémentaire n'est requise.


Vous pouvez définir différents paramètres pour différents sous-dossiers du projet. Créez .editorconfig fichiers .editorconfig dans les dossiers nécessaires - il peut y en avoir autant dans le projet.


Vous pouvez également définir PhpStorm ! Options dans le fichier .editconfig!

En plus des options standard pour EditorConfig, vous pouvez configurer presque toutes les options de style spécifiques à PhpStorm. Auparavant, ils ne pouvaient être configurés qu'à partir de l'interface utilisateur. Ces options sont indiquées par le préfixe ij_ pour différer des options standard.



Si vous créez un nouveau fichier .editorconfig à partir de la vue du projet , PhpStorm vous demandera de choisir les options à inclure dans le fichier créé. Ils seront ajoutés commentés, et ceux nécessaires peuvent être non commentés et modifiés.



Apparence


Plus d'informations dans Project View


Vous pouvez activer l'affichage de la taille du fichier et de la date de modification dans la vue du projet en utilisant Affichage -> Descriptions sur place .



Un nouveau type d'infobulle d'inspection


L'info-bulle décrit maintenant non seulement le problème, mais propose également le premier correctif de la liste. Pour l'appliquer instantanément, même sans indice ni clic, appuyez sur Alt+Shift+Enter . Pour voir tous les correctifs disponibles, appuyez sur Alt+Enter .



Interface utilisateur mise à jour sous Windows


Nouvelle vue sans cadre sur Windows 10:




PhpStorm, comme toujours, inclut toutes les mises à jour de WebStorm et de DataGrip. Une liste complète des modifications peut être trouvée dans de très grandes notes de version .


Et enfin, une courte vidéo (en anglais) avec une démonstration des principales fonctionnalités de la version:



C'est tout pour une fois. Merci d'avoir lu jusqu'au bout! Des questions, des souhaits, des rapports de bugs et seulement des pensées exprimées dans les commentaires! Nous nous ferons un plaisir de vous répondre.


Votre équipe JetBrains PhpStorm

Source: https://habr.com/ru/post/fr461449/


All Articles