PhpStorm 2020.3: PHP 8, Attributs, PHPStan et Psalm, Xdebug 3, CSS Tailwind et co-développement





Nous sommes heureux de vous présenter la derniÚre version majeure de PhpStorm cette année! Sous la coupe se trouve une analyse détaillée de tous les changements et nouvelles fonctionnalités.



  • PHP 8 : prise en charge de toutes les fonctionnalitĂ©s du langage et des attributs Storm .
  • PHPStan Psalm .
  • Xdebug 3 , IDE.
  • HTTP- Guzzle cURL.
  • .
  • Mermaid.js, , .
  • Git stage changelists.
  • SQL MongoDB.
  • Tailwind CSS .




PHP 8



Sortie de PHP 8.0 . Un grand merci Ă  tous les contributeurs et responsables de publication!



PhpStorm 2020.3 prend en charge tous les derniers changements de langue. Jetons un coup d'Ɠil à ce qui est disponible et comment l'utiliser dans l'EDI.



Version de la langue dans la barre d'état



Désormais, la barre d'état affiche toujours la version PHP actuelle du projet. Vous pouvez également changer de version à partir de là.







Si le bouton radio n'est pas actif, cela signifie que la limite de version de PHP est définie dans composer.json.



Arguments nommés



En PHP 8, les arguments des fonctions et des mĂ©thodes peuvent ĂȘtre passĂ©s en spĂ©cifiant un nom de paramĂštre. Les appels sont dĂ©sormais automatiquement documentĂ©s et les paramĂštres optionnels sont optionnels au sens plein du terme.



À l'aide du correctif rapide Ajouter des identificateurs de nom , vous pouvez ajouter des noms aux arguments: les







fautes de frappe ou les noms d'arguments erronés sont mis en surbrillance:







si la valeur transmise correspond à la valeur du paramÚtre par défaut, vous pouvez la supprimer en toute sécurité: au







lieu du tableau d'options, vous pouvez utiliser des ne passant que les nécessaires. Les arguments passés de cette maniÚre sont de type sûr, contrairement aux éléments de tableau.







Les attributs



Les attributs sont une nouvelle façon structurée de spécifier des métadonnées en PHP au lieu des commentaires PHPDoc.



Pour créer un attribut, vous devez déclarer une classe et ajouter un marqueur #[Attribute]



. Ici, PhpStorm vous aidera à mettre en évidence, à compléter le code, à rechercher des usages, à refactoriser et plus encore.







PHP lui-mĂȘme ne vĂ©rifie la validitĂ© des attributs que lorsqu'il est appelĂ© ReflectionAttribute::newInstance()



. Et si vous n'accédez pas aux attributs via Reflection, ils sont complÚtement ignorés afin de ne pas charger des classes inutiles et de créer des objets.



Mais PhpStorm validera tout dans l'éditeur sans exécuter l'API Reflection. Les rÚgles suivantes sont vérifiées:



  • La classe spĂ©cifiĂ©e peut en effet ĂȘtre un attribut.





  • Cet attribut s'applique uniquement aux endroits autorisĂ©s: une classe, une propriĂ©tĂ©, une mĂ©thode, un paramĂštre, une fonction ou une constante de classe.





  • L'attribut est rĂ©pĂ©tĂ© uniquement s'il est dĂ©clarĂ© avec un indicateur Attribute::IS_REPEATABLE



    .







Voici les attributs en action avec Symfony:










Attributs PHP 8 Storm



Plusieurs attributs sont disponibles dans PhpStorm 2020.3 prĂȘts Ă  l'emploi dans l'espace de noms \JetBrains\PhpStorm\



.



Vous pouvez les utiliser immédiatement dans votre base de code sans rien connecter.



Mais si vous utilisez en plus d'autres outils d'analyse statique et que vous ne souhaitez pas recevoir d'erreurs de classe non trouvĂ©e , il peut ĂȘtre utile d'ajouter le package d' attributs JetBrains / phpstorm-attributes en tant que dĂ©pendance Ă  composer.json



.





# [ObsolĂšte]



Utilisez cet attribut comme une balise PHPDoc @deprecated pour marquer les méthodes, les classes ou les constantes de classe qui seront supprimées à l'avenir.



L'avantage ici est que vous pouvez spécifier un remplacement pour le code obsolÚte et il sera plus facile pour l'utilisateur de mettre à jour.



Jetons un coup d'Ɠil Ă  un exemple du monde rĂ©el. Dans le Symfony 5.2 rĂ©cemment publiĂ© , la mĂ©thode est \Symfony\Component\DependencyInjection\Alias::setPrivate()



obsolĂšte . Si vous y ajoutez un attribut #[Deprecated]



, vous pouvez simplifier la migration.



#[Deprecated(
   reason: 'since Symfony 5.2, use setPublic() instead',
   replacement: '%class%->setPublic(!%parameter0%)'
)]

      
      













# [ArrayShape]



Cet attribut est utile pour travailler avec des structures de donnĂ©es simples ou des tableaux de type objet lorsque, pour une raison quelconque, une classe ne peut pas ĂȘtre dĂ©clarĂ©e.



La syntaxe est la suivante:

#[ArrayShape([
// ‘key’ => ’type’,
   ‘key1’ => ‘int’,
   ‘key2’ => ‘string’,
   ‘key3’ => ‘Foo’,
   ‘key3’ => App\PHP 8\Foo::class,
])]
function functionName(...): array

      
      







Le type peut ĂȘtre spĂ©cifiĂ© sous forme de chaĂźne ou de rĂ©fĂ©rence de classe sous la forme d'une chaĂźne ou d'une constante FQN ::class



.







Le tableau qui dĂ©finit la "forme" peut ĂȘtre placĂ© dans une constante et rĂ©utilisĂ©:



const  MY_ARRAY_SHAPE = [];
#[ArrayShape(MY_ARRAY_SHAPE)]

      
      











Dans PhpStorm, nous avons déjà annoté #[ArrayShape]



certaines fonctions PHP standard avec un attribut , par exemple parse_url()



.



Heureusement, la syntaxe des attributs sur une seule ligne est rétrocompatible. Autrement dit, si vous écrivez #[ArrayShape]



sur une seule ligne dans un projet PHP 7, l'interpréteur PHP interprétera cette ligne comme un commentaire.



Contrairement Ă  l'interprĂ©teur PHP, PhpStorm analysera les attributs de toute façon! Ainsi, mĂȘme si votre projet exĂ©cute PHP 7.4 ou une version infĂ©rieure, vous bĂ©nĂ©ficierez toujours de l'ajout #[ArrayShape]



.





# [Immuable]



Les objets immuables ne peuvent pas ĂȘtre modifiĂ©s aprĂšs l'initialisation ou la crĂ©ation. Leur utilisation rend l'Ă©tat du programme plus prĂ©visible et plus facile Ă  dĂ©boguer.



Un attribut #[Immutable]



peut ĂȘtre utilisĂ© pour marquer une classe entiĂšre ou des propriĂ©tĂ©s spĂ©cifiques pour indiquer qu'elles ne peuvent pas ĂȘtre modifiĂ©es.



PhpStorm vérifiera l'utilisation de ces objets et propriétés et mettra en évidence les tentatives de changement.







La modification d'une propriĂ©tĂ© par dĂ©faut est autorisĂ©e dans le constructeur, mais peut Ă©galement ĂȘtre autorisĂ©e dans les mĂ©thodes privĂ©es / protĂ©gĂ©es. Cela se fait Ă  l' aide des constantes CONSTRUCTOR_WRITE_SCOPE



, PRIVATE_WRITE_SCOPE



, PROTECTED_WRITE_SCOPE



transmis au constructeur #[Immutable]



.









# [Pure]



Cet attribut marque les fonctions pures, c'est-Ă -dire celles qui ne produisent aucun effet secondaire. Ces fonctions peuvent ĂȘtre supprimĂ©es en toute sĂ©curitĂ© si le rĂ©sultat de leur exĂ©cution n'est pas utilisĂ© ultĂ©rieurement.







Si une fonction est marquée comme propre, mais qu'il y a une tentative de changer quelque chose en dehors de la portée externe dans son corps, alors PhpStorm mettra en évidence le code non sécurisé.







Toutes les fonctions PHP pures standard sont déjà marquées avec cet attribut dans PhpStorm.





# [ExpectedValues]



À l'aide de cet attribut, vous pouvez spĂ©cifier les valeurs que la fonction prend comme paramĂštres et celles qui peuvent ĂȘtre renvoyĂ©es.



C'est pratiquement la mĂȘme chose que expectedArguments()



dans .phpstorm.meta.php



. La seule différence est que la version méta est plutÎt auxiliaire et que l'attribut indique de maniÚre rigide qu'il n'y a pas d'autres valeurs possibles.



Par exemple, considérons la fonction de comptage:

count ( array|Countable $array_or_countable [, int $mode = COUNT_NORMAL ] ) : int
      
      





Son deuxiĂšme argument est un entier, mais en fait ce n'est pas un entier arbitraire, mais l'une des constantes COUNT_NORMAL



ou COUNT_RECURSIVE



.



Voici comment l'attribut #[ExpectedValues]



améliorera la situation:







c'est-à-dire que l'auto-complétion est apparue et si quelque chose d'autre est passé, l'erreur est mise en évidence.



Comment spécifier des valeurs possibles ou des masques binaires
Les valeurs attendues sont transmises au constructeur de l'attribut et peuvent ĂȘtre l'une des suivantes:

  • Nombres: #[ExpectedValues(values: [1,2,3])]





  • LittĂ©raux de chaĂźne: #[ExpectedValues(values: [‘red’, ‘black’, ‘green’])]





  • Constantes: #[ExpectedValues(values: [COUNT_NORMAL, COUNT_RECURSIVE])]





  • Constantes de classe: #[ExpectedValues(values: [Code::OK, Code::ERROR])]









Et il existe plusieurs façons de spécifier les arguments attendus:

  • #[ExpectedValues(values: [1,2,3])]



    , .

  • #[ExpectedValues(flags: [1, 2, 3])]



    , , 1 | 3



    .

  • #[ExpectedValues(valuesFromClass: MyClass::class)]



    , `MyClass



    `.

  • #[ExpectedValues(flagsFromClass: ExpectedValues::class)]



    , `MyClass`.







Un autre exemple # [ExpectedValues]



Prenons une aide response()



de Laravel. Il prend le code d'état HTTP comme deuxiÚme paramÚtre.



Il y a deux problĂšmes

  • Pas de saisie semi-automatique avec les codes possibles

  • Pas de validation de valeur dans l'Ă©diteur









Corrigeons cela en ajoutant l'attribut #[ExpectedValues(valuesFromClass: Response::class)]













# [Non-retour]



Certaines fonctions peuvent arrĂȘter l'exĂ©cution du script. Le marquage des fonctions telles que les points de sortie avec un attribut #[NoReturn]



améliore l'analyse du flux de contrÎle.









# [Langue]



Cet attribut peut ĂȘtre ajoutĂ© aux paramĂštres de chaĂźne qui attendent du texte dans certaines langues, telles que RegExp, SQL, DQL, etc.



Pour les arguments, la mise en évidence et les options supplémentaires apparaßtront.












Revenons aux nouvelles fonctionnalités de PHP 8.



Déclaration des propriétés dans le constructeur



Les propriĂ©tĂ©s normales peuvent ĂȘtre converties en propriĂ©tĂ©s promues ou vice versa Ă  l'aide du correctif rapide Convertir en propriĂ©tĂ© promue .







PhpStorm garantit que les propriétés ne sont utilisées que d'une maniÚre autorisée dans PHP 8:

  • Vous ne pouvez dĂ©clarer des propriĂ©tĂ©s que dans le constructeur.

  • Ne peut pas ĂȘtre dĂ©clarĂ© dans un constructeur abstrait.

  • Vous ne pouvez pas dĂ©clarer une propriĂ©tĂ© variadique de cette maniĂšre.

  • La propriĂ©tĂ© ne peut pas ĂȘtre de type «Callable».

  • Les remplacements de propriĂ©tĂ© ne sont pas autorisĂ©s.











Si la propriété est déclarée d'une nouvelle maniÚre, mais que l'initialisation reste dans le corps du constructeur, PhpStorm proposera de la supprimer.







Expression de correspondance



La nouvelle expression est similaire Ă  switch



mais utilise une comparaison stricte et peut ĂȘtre affectĂ©e Ă  une variable ou renvoyĂ©e.



PhpStorm détecte si un bloc peut switch



ĂȘtre réécrit match



et le fera automatiquement avec une solution rapide en appuyant sur Alt + Entrée:







Il peut ĂȘtre difficile de voir l'utilisation incorrecte d'une nouvelle expression, donc PhpStorm mettra en Ă©vidence toutes les erreurs.









Des valeurs dupliquées seront trouvées dans les conditions: Une







expression de correspondance avec une branche et une branche par dĂ©faut peut ĂȘtre remplacĂ©e en toute sĂ©curitĂ© par une expression ternaire.







Et s'il ne reste que la branche par défaut, la correspondance n'est pas du tout nécessaire.







Enfin, si les corps sont identiques dans diffĂ©rentes branches, ils peuvent ĂȘtre fusionnĂ©s.







Opérateur Nullsafe



Au lieu d'un tas de conditions avec une vérification de null, vous pouvez maintenant utiliser une chaßne d'appels avec un nouvel opérateur ?->



.



PhpStorm vérifiera l'utilisation correcte de l'opérateur:







Virgule suspendue



Il est désormais permis d'ajouter une virgule aprÚs le dernier argument lors de l'appel de fonctions et dans une liste de fermeture use



.







Captures sans capture



En PHP 8, vous pouvez intercepter une exception dans un bloc catch sans variable.







Lancer l'expression



Des exceptions peuvent dĂ©sormais ĂȘtre lancĂ©es dans les fonctions flĂ©chĂ©es et les opĂ©rateurs courts ??



, ainsi que dans ternaire ? :



.







Vous pouvez utiliser la sténographie thr



et appuyez sur l'onglet - il s'agit d'un modĂšle en direct .







Constante :: classe sur les objets



Auparavant, pour obtenir le FQN d'un objet, vous deviez utiliser une fonction get_class()



. En PHP 8, l'appel get_class($object)



peut ĂȘtre remplacĂ© en toute sĂ©curitĂ© par $object::class



.



En fait, en appuyant sur Alt + EntrĂ©e, un tel remplacement peut ĂȘtre effectuĂ©. Une utilisation incorrecte de la constante ::class



PhpStorm sera mise en évidence.







Nouvelles fonctions pour les chaĂźnes: str_contains (), str_starts_with (), str_ends_with ()



Comment vérifier si une chaßne contient un mot spécifique? Est la question PHP la plus vue sur Stack Overflow. PHP 8 a une réponse claire à cette question: utilisez une fonction str_contains()



.



PhpStorm 2020.3 tous les appels strpos()



qui peuvent ĂȘtre remplacĂ©s par str_contains()



:







Il existe également de nouveaux str_starts_with()



, et str_ends_with()



pour dĂ©terminer si la sous-chaĂźne spĂ©cifique de la ligne de dĂ©but ou de fin. PhpStorm met en Ă©vidence les endroits oĂč les appels substr()



peuvent ĂȘtre remplacĂ©s par de nouvelles alternatives:







Avertissements moteurs reclassifiés



En PHP 8, le type d'avertissement lancĂ© a Ă©tĂ© rĂ©visĂ© pour de nombreuses erreurs. À savoir, au lieu de l'avis dans de nombreux cas, il y aura une exception ou une erreur de type.



Dans PhpStorm, pour cette raison, certaines inspections ont deux niveaux de gravité différents: pour PHP 8 et pour les anciennes versions.







Ce sont tous les plus notables de PHP 8. Il y a tout un tas de petits changements qui seront visibles lorsque vous passez Ă  PHP 8.





Prise en charge de Psalm et PHPStan



Les deux analyseurs statiques peuvent ĂȘtre utilisĂ©s dans PhpStorm 2020.3 pour mettre en Ă©vidence les problĂšmes directement dans l'Ă©diteur.







Si PHPStan ou Psalm sont ajoutés en tant que dépendances dans composer.json



, il y aura une icÎne de clé à cÎté d'eux qui ouvre les paramÚtres de l'outil.







De là, vous pouvez accéder aux paramÚtres d'inspection et activer la mise en évidence dans l'éditeur. Cela se fait en sélectionnant l'inspection appropriée dans PHP | Outils de qualité dans ParamÚtres / Préférences | Rédacteur | Inspections .



 Il est prĂ©fĂ©rable d'allumer un seul des instruments plutĂŽt que les deux Ă  la fois.







Ici, vous pouvez également spécifier le chemin d'accÚs au fichier de configuration et configurer les arguments de la ligne de commande.



 PHPStan peut fonctionner sans fichier de configuration, mais Psalm l'exige. S'il y en a psalm.xml



ou dans le répertoire racine phpstan.neon



, PhpStorm les extraira automatiquement.



Lorsque tout est configuré, ouvrez n'importe quel fichier et vous verrez un surlignage des analyseurs statiques. Il peut y avoir un court délai avant que le rétroéclairage n'apparaisse.







Annotations



Toutes les annotations de psaume sont @psalm-*



désormais correctement mises en évidence dans l'éditeur. Mais en général, vous pouvez maintenant supprimer en toute sécurité le préfixe @psalm-



des balises, c'est-Ă -dire @psalm-return



-> @return



et @psalm-param



-> @param



.







Support de type



Nous avons ajouté la prise en charge de certains types de psaume, et sur la base des informations des balises, nous avons amélioré notre inférence de type. Cela a rendu les contrÎles, la génération de code et l'auto-complétion plus précis.



Pseudo-types

Prend en charge les pseudo-types de psaume, tels que scalaires, numériques, etc.







Constantes dans les types

Prend en charge les jointures constantes et la spécification via des *



balisesparam et var...







Indices de type pour les tableaux Les

descriptions de tableaux sont array<array-key, Type>



également prises en charge, y compris celles imbriquées.







Generics et @tempate Le

support gĂ©nĂ©rique est une fonctionnalitĂ© pour les utilisateurs avancĂ©s qui n'a pas une spĂ©cification correcte complĂšte et de nombreux cas extrĂȘmes . Cependant, nous avons dĂ©cidĂ© d'implĂ©menter le support de base de @template



la syntaxe basée sur Psalm pour voir comment cela sera utilisé.



Jusqu'à présent, seul le cas le plus primitif est pris en charge, lorsque la fonction renvoie l'un de ses paramÚtres.







Ce support gĂ©nĂ©rique est trĂšs basique et expĂ©rimental. Nous voulons comprendre comment il sera utilisĂ© et ce qui doit ĂȘtre mis en Ɠuvre en premier. Nous serions ravis de vous entendre, en particulier sous la forme de cas d'utilisation rĂ©els dans notre tracker .


Xdebug 3



Le débogueur PHP populaire a été mis à jour pour le rendre beaucoup plus rapide et plus facile à configurer. En savoir plus sur Xdebug 3 dans le guide de mise à niveau .



Pour configurer Xdebug 3, une option xdebug.mode suffit maintenant (comme ceci XDEBUG_MODE=debug



).



Le port Xdebug par défaut a également été modifié: au lieu de 9000



maintenant 9003



. Pour simplifier la migration, PhpStorm écoute par défaut sur les deux ports. Les paramÚtres de port et d'autres options pour Xdebug se trouvent dans Préférences / ParamÚtres | Langues et cadres | PHP | Déboguer .









Améliorations du débogueur



Les capacités de débogage de PhpStorm ont été étendues avec deux nouvelles fonctionnalités.



Conseils interactifs

Désormais en mode débogage, vous pouvez étendre la sortie des variables pour voir tous les champs. Vous pouvez également modifier les valeurs ici.







Montres en ligne

Dans les versions précédentes, vous pouviez ajouter une variable ou une expression à la liste de surveillance et observer le changement de valeur étape par étape.



Dans PhpStorm 2020.3, vous pouvez ajouter des montres directement dans le contexte, et elles seront affichées à cÎté du code.



Cliquez sur Ajouter en tant que montre intĂ©grĂ©e dans la fenĂȘtre contextuelle de l'indice.





Ou cliquez sur Ajouter une montre en ligne dans le menu contextuel de l'éditeur.





Ou sélectionnez la variable et sélectionnez Ajouter une montre en ligne dans le menu contextuel .





Surligner et renommer des variables dans Twig



Sélectionnez une variable ou placez le curseur dessus et toutes ses utilisations dans le modÚle seront mises en évidence. Et pour renommer toutes les occurrences, appuyez sur Maj + F6.









Co-développement - Code With Me



PhpStorm 2020.3 est livré avec le plugin Code With Me , le nouvel outil de développement collaboratif JetBrains et de programmation par paires. Avec lui, vous pouvez partager un projet ouvert avec d'autres utilisateurs et y travailler ensemble en temps réel. En savoir plus sur Code With Me dans ces articles .









Client HTTP



Intégration de Guzzle avec le client HTTP dans PhpStorm



Guzzle est l'un des clients HTTP les plus populaires pour PHP. Imaginez que quelque part dans le code il y a une requĂȘte HTTP et que vous voulez la tester sans exĂ©cuter le code lui-mĂȘme. Auparavant, vous deviez copier tous les paramĂštres manuellement.



PhpStorm 2020.3 vous permet de convertir de simples requĂȘtes Guzzle en fichiers .http. Si la demande est prise en charge, une icĂŽne apparaĂźtra Ă  cĂŽtĂ©. En cliquant dessus, vous ouvrirez un nouveau fichier de travail avec l'URL correcte, les paramĂštres de requĂȘte, les mĂ©thodes, les en-tĂȘtes, le corps.







DĂ©sormais, Ă  partir de l'Ă©diteur, la requĂȘte peut ĂȘtre exĂ©cutĂ©e et manipulĂ©e, puis enregistrĂ©e sous forme de fichier http dans le projet.



En savoir plus sur le client HTTP dans la revue vidéo .


Copier la requĂȘte HTTP vers cURL



Pour exporter la requĂȘte HTTP vers une chaĂźne cURL, appuyez sur Alt + EntrĂ©e sur la requĂȘte dans l'Ă©diteur et sĂ©lectionnez Convertir en cURL et copier dans le presse-papiers . Il peut maintenant ĂȘtre insĂ©rĂ© dans le terminal, la documentation ou tout autre outil de test d'API.









Éditeur



Améliorations pour Markdown



Vous pouvez utiliser la syntaxe Mermaid.js dans les fichiers markdown pour décrire des graphiques et des graphiques . PhpStorm peut maintenant rendre des aperçus pour eux directement dans l'éditeur. Inclus dans Préférences / ParamÚtres | Langues et cadres | Markdown .







Il est Ă©galement maintenant possible de reformater le contenu des fichiers .md selon les styles courants. TerminĂ© en appuyant sur ⌘⌄L / Ctrl + Alt + L.



Configurable dans Préférences / ParamÚtres | Rédacteur | Style de code | Markdown .







Enfin, si vous cliquez sur le bouton Aperçu par défilement automatique dans le coin supérieur droit de l'éditeur, le défilement de l'aperçu et du texte sera synchronisé.



Amélioration de l'orthographe et de la vérification grammaticale



Les fautes de frappe et les problĂšmes de grammaire peuvent dĂ©sormais ĂȘtre corrigĂ©s beaucoup plus rapidement:

  • Tout d'abord, une explication de l'erreur apparaĂźtra dans une fenĂȘtre contextuelle.

  • Et si vous appuyez sur Alt + EntrĂ©e sur le texte en surbrillance, les options de remplacement seront proposĂ©es en haut, et non masquĂ©es dans un sous-Ă©lĂ©ment, comme auparavant.









Diviser l'éditeur par glisser-déposer



Pour ouvrir plusieurs fichiers cÎte à cÎte, faites simplement glisser l'onglet vers le coin souhaité de l'écran.







Il existe une autre façon d'ouvrir un fichier en mode fractionné - Maj + Entrée.

La combinaison peut ĂȘtre cliquĂ©e sur le fichier sĂ©lectionnĂ© dans la vue Projet ou dans les rĂ©sultats de la recherche de fichiers.







Onglet Aperçu



Si vous avez besoin d'afficher rapidement les fichiers, il n'est plus nécessaire d'ouvrir chacun d'eux dans un onglet séparé. Vous pouvez utiliser le nouvel onglet Aperçu .



Pour l'activer, cliquez sur l'engrenage dans la vue Projet et sélectionnez Activer l'onglet Aperçu et Ouvrir les fichiers en un seul clic .







Vous pouvez également afficher les fichiers en appuyant sur la barre d'espace dans la vue Projet sans les ouvrir.









IDE



Améliorations de la recherche partout





Les résultats sont regroupés par pertinence:





Vous pouvez effectuer des opérations mathématiques simples sans ouvrir la calculatrice Google :





Vous pouvez rechercher par historique Git:





Passage automatique au thĂšme clair ou sombre



Dans Préférences / ParamÚtres | Apparence et comportement | Apparence | ThÚme sélectionnez Synchroniser avec le systÚme d'exploitation .







Nouvel ensemble de raccourcis clavier pour macOS



Une autre disposition de raccourcis clavier pour macOS minimise l'utilisation des touches de fonction afin que vous n'ayez pas Ă  Ă©tirer votre main sur tout le clavier lors de l'exĂ©cution d'actions de base. Par exemple, au lieu de Fn + Shift + F6, le refactoring Rename utilise ⌄ + ⌘ + R.







Mots au lieu d'icĂŽnes pour les raccourcis clavier macOS



Vous pouvez faire apparaĂźtre les mots Alt, Cmd, etc. au lieu d'icĂŽnes comme ⌘ . ActivĂ©



dans la section Registre par l'option ide.macos.disable.native.shortcut.symbols . Pour accéder au registre, utilisez Find Action Cmd + Shift + A et écrivez Registry là .



Définir PhpStorm comme application par défaut pour différents fichiers



Les préférences | ParamÚtres / Editeur / Types de fichiers cliquez sur Associer les types de fichiers à PhpStorm
 . Dans la boßte de dialogue, sélectionnez les extensions de fichier et elles s'ouvriront dans PhpStorm.



Un redémarrage est requis sur macOS.







Les modÚles peuvent générer plusieurs fichiers



Vous pouvez générer simultanément plusieurs fichiers à la fois, par exemple, un squelette pour un module ou une vue de contrÎleur combinée.



Dans Préférences / ParamÚtres | Rédacteur | Cliquez sur ModÚles de fichier et de code pour créer un nouveau modÚle, puis cliquez sur l'icÎne Créer un fichier de modÚle enfant . Des variables de type



peuvent ĂȘtre utilisĂ©es dans le champ Nom de fichier . Et voici un exemple de la façon de gĂ©nĂ©rer un contrĂŽleur et un modĂšle dans Symfony:${NAME}





















Prise en charge de la scĂšne Git



Vous pouvez l'activer en cochant la case Activer la zone de préparation dans Préférences / ParamÚtres | ContrÎle de version | Git .



Dans la fenĂȘtre de l'outil Valider (Cmd + 0 / Alt + 0), deux groupes de fichiers apparaissent: mis en scĂšne et non mis en scĂšne.



Pour ajouter un fichier à mettre en scÚne , cliquez sur le + à cÎté.







Ou vous pouvez sélectionner des lignes spécifiques et les ajouter avec une icÎne dans l'éditeur. Dans ce cas, vous pouvez valider certaines des modifications du fichier et continuer à travailler sur le reste.









Outils DB



PhpStorm comprend DataGrip dispose de la boßte , qui sont couverts dans la liste de libération DataGrip 2020,3 de nos collÚgues.



SQL pour MongoDB



Vous pouvez maintenant utiliser des requĂȘtes SQL sur MongoDB. PHPStorm 2020.3 supports SELECT-



requĂȘtes JOIN



, WHERE



, GROUP BY



, HAVING



, ORDER BY



, LIMIT



,OFFSET



et toutes les fonctionnalités de MongoDB en dehors carte, réduire, filtrer et laisser. En savoir plus dans le billet de blog .







la toile



Comme toujours, PhpStorm inclut toutes les mises Ă  jour de WebStorm 2020.3 . Le plus notable est la prise en charge de Tailwind CSS.



CSS de Tailwind



PhpStorm complÚte les classes Tailwind dans les fichiers HTML et aprÚs la directive @apply. Il fournira également un complétion de pseudo-classe.



tailwind-completion-after-apply



Si vous survolez une classe dans des fichiers HTML et CSS, un aperçu du CSS rĂ©sultant s'affiche. L'aperçu est Ă©galement disponible pendant la fin du code, dans la fenĂȘtre contextuelle de documentation F1 / Ctrl + Q.



tailwind-completion-for-pseudo-class-variants



PhpStorm prend en charge les personnalisations de tailwind.config.js. Par exemple, si vous dĂ©finissez un thĂšme avec de nouvelles couleurs, dans la fenĂȘtre contextuelle de saisie semi-automatique, des classes seront créées avec le nom de la couleur personnalisĂ©e.



support de personnalisation de tailwind








Vous pouvez télécharger PhpStorm 2020.3 sur la page « Quoi de neuf ».



Et voici une vidéo (en anglais) montrant les principales caractéristiques de la version:





C'est tout ce temps. Nous serons heureux d'avoir des questions, des souhaits, des rapports de bogues et des réflexions dans les commentaires.



All Articles