PhpStorm 2021.3 est disponible avec la prise en charge compl�te de PHP 8.1
Une meilleure gestion des g�n�riques PHP, le d�veloppement � distance et bien d'autres am�liorations

JetBrains vient d'annoncer la disponibilit� de PhpStorm 2021.3. Il s'agit de la troisi�me mise � jour majeure de l'ann�e de l'EDI pour le d�veloppement Web avec PHP. Cette version introduit une prise en charge compl�te de PHP 8.1, une meilleure gestion des g�n�riques en PHP, le d�veloppement � distance, et des am�lioration pour les refactorisations, le d�ploiement, le client HTTP et l'int�gration VCS, entre autres. Nous pr�sentons dans la suite les nouveaut�s et am�liorations de cette version par domaine.

PHP 8.1

Enums

Les enums sont l'une des fonctionnalit�s les plus attendues de PHP 8.1. PhpStorm 2021.2 a inaugur� la prise en charge des enums, avec des suggestions de code et une validation pour vous prot�ger contre leur utilisation incorrecte.

Un enum en PHP contient un ensemble de cas, peut avoir des m�thodes, et peut �tre utilis� comme un indicateur de type. Dans tous ces cas, PhpStorm met en �vidence les erreurs et propose des suggestions appropri�es pour vous faire gagner du temps.

Propri�t�s en lecture seule

Les propri�t�s en lecture seule sont les propri�t�s qui ne peuvent pas �tre modifi�es apr�s leur initialisation, c'est-�-dire apr�s qu'une valeur leur a �t� attribu�e.

PhpStorm 2021.3 vous aidera � utiliser les propri�t�s en lecture seule dans votre code et � vous assurer qu'elles sont utilis�es correctement.

Une inspection sp�cifique v�rifiera qu'une propri�t� en lecture seule n'est initialis�e que dans la port�e o� elle est d�clar�e, soit dans la d�claration de la propri�t� elle-m�me, soit dans une m�thode de classe.

Comme les propri�t�s readonly doivent toujours �tre typ�es, PhpStorm v�rifiera si la d�claration de type est sp�cifi�e.

Une propri�t� readonly ne peut pas avoir de valeur par d�faut, mais vous pouvez l'initialiser dans le constructeur en tant que propri�t� promue. PhpStorm propose donc un correctif rapide pour cela.


L'op�rateur � new � dans les initialisateurs

En PHP 8.1, vous pouvez utiliser de nouvelles expressions pour initialiser les valeurs des param�tres par d�faut, les variables statiques, les constantes globales et les arguments d'attributs.

PhpStorm v�rifiera ces occurrences et mettra en �vidence les cas non valides tels que l'ajout d'un nouvel objet comme constante de classe ou propri�t�.

�l�ments appelables de premi�re classe

PHP 8.1 vous permet d'obtenir une r�f�rence � n'importe quelle fonction � l'aide de la syntaxe des �l�ments appelables de premi�re classe. Maintenant, au lieu d'�crire $fn = Closure::fromCallable('strlen') ;, vous pouvez utiliser une forme plus courte $fn = strlen(�) ;, et PhpStorm vous proposera un correctif rapide avec Alt+Entr�e pour convertir votre code vers la nouvelle syntaxe.


Types intersection purs

PHP 8.1 apporte des types intersection, dont la valeur doit respecter plusieurs contraintes de type au lieu d'une seule.

PhpStorm propose maintenant une saisie semi-automatique du code pour ces constructs et v�rifie qu'un type intersection n'est pas combin� avec un type union. Et si vous avez un type intersection sp�cifi� en tant qu'annotation PHPDoc, PhpStorm l'interpr�tera aussi correctement.

Nouveau type de retour : � never �

PHP 8.1 introduit un type never pour les valeurs de retour. Si une fonction est d�clar�e avec le type never, elle ne renvoie pas de valeur et l�ve une exception ou met fin � l'ex�cution du script (comme le font les fonctions die(), exit() ou trigger_error()).


Constantes finales

En PHP 8.1, vous pouvez d�clarer des constantes de classe avec final afin qu'elles ne puissent pas �tre remplac�es dans les classes enfants. PhpStorm v�rifiera ces cas.


Fonctions obsol�tes

En plus des nouvelles fonctionnalit�s, PHP 8.1 apporte plusieurs obsolescences visant � am�liorer la coh�rence et la facilit� d'utilisation du langage. PhpStorm vous aidera � rep�rer ce code obsol�te. Voici quelques exemples :

Utilisation obsol�te des interfaces Serializable

Au lieu des interfaces Serializable, il est recommand� d'utiliser les m�thodes magiques __serialize() et __unserialize(). En PHP 8.1, vous pouvez toujours utiliser Serializable, mais seulement si la classe d'impl�mentation utilise � la fois __serialize() et __unserialize(). PhpStorm 2021.3 met en �vidence le code incorrect et propose un correctif rapide Alt+Entr�e pour ajouter les m�thodes magiques.


Utilisation restreinte de GLOBALS

L'utilisation de la variable superglobale $GLOBALS en PHP 8.1 est maintenant restreinte. Il n'est pas permis d'effectuer des op�rations d'�criture ou de lecture/�criture sur la variable $GLOBALS prise dans son ensemble. PhpStorm mettra en �vidence ces utilisations probl�matiques.


G�n�riques pour PHP

PHP ne prend pas encore en charge les g�n�riques au niveau du langage, mais leur utilisation via les annotations est d�j� devenue assez populaire. Ils rendent le code plus s�r et plus pr�visible quand vous travaillez avec des collections, des conteneurs, des factories et d'autres applications. PhpStorm 2021.3 �tend la prise en charge des g�n�riques via l'annotation @template.

Am�lioration de la prise en charge des Doctrine Collections

PhpStorm prend en charge l'interface IteratorAggregate et l'it�ration sur les Doctrine Collections fonctionne d�sormais automatiquement.


Prise en charge des collections Laravel Collections

Dans la prochaine version de Laravel, le paquet illuminate/collections prendra en charge les annotations g�n�riques. PhpStorm 2021.3 offre une meilleure saisie semi-automatique du code pour ces collections.

D�duction des types g�n�riques � partir du constructeur

Si un constructeur comporte un param�tre g�n�rique @template et que vous voulez sp�cifier le type en passant un objet comme argument, PhpStorm d�duit maintenant le type correct et vous propose une saisie semi-automatique du code.


Refactorisations

D�placement des classes par glisser-d�poser

Auparavant, pour d�placer une classe et mettre � jour son espace de noms, votre seule possibilit� �tait d'utiliser la refactorisation move (F6) dans l'�diteur de code. Dans PhpStorm 2021.3, vous pouvez utiliser le glisser-d�poser dans la vue Project � la place. De cette fa�on, la structure du projet serait visible pendant l'exploitation. De plus, cette technique permet de d�placer plusieurs classes ou des dossiers entiers. PhpStorm mettra correctement � jour toutes les r�f�rences.


Fonction ou m�thode Inline

La refactorisation Inline method vous permet de remplacer les appels � la m�thode par le contenu de la m�thode et de supprimer la m�thode elle-m�me. Dans PhpStorm 2021.3, la refactorisation a fait l'objet de plusieurs am�liorations pour couvrir encore plus de cas. Par exemple, les m�thodes non statiques, les cha�nes de m�thodes et les fonctions fl�ches/anonymes pass�es en param�tre sont d�sormais prises en charge.

Pour utiliser cette refactorisation, placez le curseur sur une m�thode et appuyez sur Ctrl+Alt+N. S'il existe une m�thode priv�e qui n'est utilis�e qu'une seule fois dans le code, appuyez sur Alt+Entr�e et utilisez le nouveau correctif rapide Inline Method.


Incorporer une variable

La refactorisation Inline variable vous permet de remplacer les r�f�rences � une variable par la valeur de la variable elle-m�me. Dans PhpStorm 2021.3, cette refactorisation prend en charge les variables NOWDOC/HEREDOC et apporte plusieurs am�liorations � l'ergonomie.

En outre, PhpStorm d�tecte d�sormais les variables � usage unique et vous propose un correctif rapide Inline Variable, que vous pouvez appliquer � l'aide de Alt+Entr�e.


D�veloppement � distance

PhpStorm 2021.3 est livr� avec un ensemble de fonctionnalit�s de d�veloppement � distance pour vous aider � coder, ex�cuter et d�boguer vos projets � partir de n'importe quelle machine. Vous pouvez vous connecter � un serveur distant � partir de l'�cran de bienvenue de PhpStorm ou en utilisant JetBrains Gateway, qui est une application l�g�re qui est utilis�e comme point d'entr�e et connecte tout via SSH.

Avec les workflows de d�veloppement � distance, vous aurez l'impression d'ex�cuter votre EDI localement avec une saisie et une assistance de code sans latence. Vous pourrez d�velopper sur n'importe quelle machine sans �tre limit� par la puissance de vos appareils locaux. Vous pourrez �galement stocker le codz source hors de votre ordinateur portable. Avec JetBrains Gateway, le code source est conserv� c�t� serveur. En outre, vous pourrez travailler en toute s�curit� o� que vous soyez. Vos projets sont localis�s en toute s�curit� sur la machine distante et sont accessibles de n'importe o�.

Veuillez noter qu'il s'agit d'une version b�ta de la fonctionnalit� de d�veloppement � distance et que JetBrains travaille toujours activement � son am�lioration.

D�ploiement

Prise en charge de rsync

Si vous utilisez un serveur SFTP pour le d�ploiement, vous pouvez activer rsync pour t�l�charger des fichiers et des dossiers vers ou depuis le serveur avec des vitesses de transfert consid�rablement augment�es. L'option correspondante Use rsync for download/upload se trouve dans la section Advanced de la configuration du serveur de d�ploiement.

Vous pouvez configurer le chemin d'acc�s � l'ex�cutable rsync dans Settings/Preferences | Tools | Rsync. Pour macOS et Linux, il doit �tre disponible automatiquement. Pour Windows, il est recommand� d'utiliser Cygwin et OpenSSH.


Retransmission des fichiers dont le t�l�chargement a �chou�

PhpStorm 2021.3 vous permet de retransmettre les fichiers dont le t�l�chargement vers le serveur a �chou�. Dans ce cas, cliquez sur le lien Retry dans la fen�tre d'outil File Transfer.


Prise en charge d'un proxy pour les connexions SSH

Vous pouvez d�sormais sp�cifier un serveur proxy HTTP ou SOCKS pour votre configuration SSH dans Settings/Preferences | Tools | SSH Configurations.

C'est �galement possible d'utiliser le proxy global � l'�chelle de l'EDI. Pour cela, cochez la case Use global IDE proxy settings et indiquez les d�tails du proxy sous Settings/Preferences | Appearance & Behavior | System Settings | HTTP Proxy.


Changement rapide de serveur par d�faut pour un projet

PhpStorm 2021.3 fournit un nouveau widget de barre d'�tat qui indique le serveur par d�faut actuel. Lorsque vous g�rez plusieurs environnements, vous pouvez basculer entre eux directement � partir de cette barre sans passer par les param�tres.


Client HTTP

R�ponses binaires dans le client HTTP

Le client HTTP prend d�sormais en charge les r�ponses binaires. Si une r�ponse re�ue est une image, son aper�u s'affichera directement dans la console de r�ponse.

Redirection de la sortie vers un fichier ou un r�pertoire personnalis�

Le client HTTP peut d�sormais rediriger la sortie vers un fichier ou un r�pertoire personnalis�. Il prend en charge deux op�rateurs pour les redirections forc�es et logicielles :

L'op�rateur >> cr�e toujours un nouveau fichier, en ajoutant un suffixe -n au nom de fichier s'il existe d�j�.
L'op�rateur >> ! remplace le fichier s'il existe d�j�.

En plus de fournir des chemins de fichiers explicites, vous pouvez maintenant utiliser de nouvelles variables pr�d�finies : {{$projectRoot}} pointe vers le dossier racine du projet et {{$historyFolder}} pointe vers le dossier de l'historique des requ�tes.

Prise en charge des identifiants de requ�tes HTTP

Dans PhpStorm 2021.3, vous pouvez donner un nom � vos requ�tes HTTP. Vous pouvez fournir un identifiant en tant que commentaire avec @nom ainsi que du texte dans le s�parateur de requ�tes (###).

Vous pouvez ensuite appeler une requ�te par son nom via la fen�tre d'outil Services, � partir des bo�tes de dialogue Run Configuration, Run Anything ou Search Everywhere.

Exp�rience utilisateur

Nouvelle fen�tre d'outil Bookmarks

Dans PhpStorm 2021.3, les fonctionnalit�s Favorites et Bookmarks ont �t� r�unies en une seule : Bookmarks. Vous pouvez ajouter un signet sur une ligne, un fichier ou un dossier sp�cifique en appuyant sur F11. Tous les signets ajout�s seront disponibles dans la fen�tre d'outil Bookmarks unifi�e.

Aper�u de la source pour Show Usages

La bo�te de dialogue Show Usages, que vous pouvez invoquer � l'aide d'un Ctrl+clic sur un symbole, peut d�sormais afficher l'aper�u du code source par occurrence trouv�e. Pour activer l'aper�u, cliquez sur le bouton carr� de la barre d'outils.


VCS

Alignement des modifications mises en �vidence

Une nouvelle option Align Changes Highlighting figure dans les param�tres de l'�cran Diff que vous trouverez sous l'ic�ne d'engrenage. Cette fonction facilite la lecture du Diff, surtout en cas de modifications complexes, car elle aligne les lignes inchang�es de mani�re � les afficher face � face. Cela vous permet de voir plus clairement le code ajout� ou supprim�.


Checkout and Rebase onto Current pour les branches distantes

L'action Checkout and Rebase onto Current vous permet d'extraire la branche s�lectionn�e et de la rebaser sur une branche actuellement extraite. Auparavant, cela n'�tait possible que pour les branches locales, mais dans PhpStorm 2021.3, vous pouvez �galement appliquer cette action aux branches distantes.

Nouvelle action � Push All up to Here �

Si vous avez plusieurs commits pr�ts � �tre livr�s alors que d'autres sont encore en cours de r�alisation, vous pr�f�rez peut-�tre n'envoyer par push que ceux dont vous �tes s�r�e. PhpStorm 2021.3 vous permettra d'envoyer les commits en push jusqu'� celui que vous avez s�lectionn� dans l'onglet Log de la fen�tre d'outil Git. S�lectionnez le commit n�cessaire, cliquez droit dessus et utilisez la nouvelle action Push All up to Here.


R�organisation des param�tres VCS

La page Version Control dans Settings/Preferences a �t� simplifi�e pour am�liorer l'ergonomie. Elle r�pertorie maintenant tous les param�tres disponibles. Le n�ud Git est maintenant divis� en sections correspondant aux processus les plus importants : Commit, Push, et Update. Un n�ud s�par� pour les Directory mappings a �t� ajout�. Les op�rations en arri�re-plan �tant d�sormais activ�es par d�faut, le n�ud Background a �t� supprim�.


Nouveaut�s et t�l�chargement de PhpStorm 2021.3