Accueil Tuto Astuces de Dev Web n°8 : reformatage express grâce à PHPStorm
Astuces de Dev Web n°8 : Reformatage en 2 secondes grâce à PHPStorm

Astuces de Dev Web n°8 : reformatage express grâce à PHPStorm

par Jérémy PASTOURET

Il y a quelques temps, je vous ai promis une technique permettant de faire du reformatage en quelques secondes grâce à PHPStorm. Si vous ne savez pas ce qu’est le refactoring de code propre, je vous conseille de lire cet article au préalable :

Astuces de Dev Web n°7 : Le reformatage ou refactoring de code

 

Paramétrage de PHPStorm pour un Reformatage efficace

Tout d’abord, vous devez ouvrir un projet PHPStorm. J’ai pris le même projet que dans mon article précédent.

Pour changer les paramètres de PHPStorm, rendez-vous sur l’onglet File en haut à gauche (voir ci-dessous).

PHPStorm Projet

 

Ensuite, cliquez sur Settings comme ci-dessous.

Paramètres PHPStorm

 

A ce moment une pop-up s’ouvre. Vous allez réaliser plusieurs actions. La première consiste à taper « code style » dans la recherche, pour que PHPStorm trouve les items correspondants. Puis vous devez cliquer sur PHP. En effet, dans le cas présent nous allons nous concentrer sur ce langage uniquement. Comme vous aurez appris à le faire sur PHP, pour pourrez le faire sur les autres langages par la suite.

Vous devriez obtenir une fenêtre similaire à la mienne :

Code Style PHP avec PHPStorm

 

Vous y trouverez différents onglets de paramétrage : Tabs and Indents, Spaces, Wrapping and Braces, Blank lines, PHPDoc. Étudions-les de plus près.

 

Tabs and Indents

Je ne compte pas m’attarder sur cet onglet car je n’ai pas envie de partir dans le débat « espaces VS tabulations ». Mais je vais laisser notre ami Richard vous expliquer le problème :

 

Donc si vous avez envie de changer le nombre d’espaces par tabulations ou faire des indentations particulières, c’est dans l’onglet Tabs and Indents que ça se passe.

 

Spaces

Dans cet onglet, je n’ai rien vu d’hallucinant. Vous avez la possibilité d’ajouter des espaces à gogo, par exemple si vous aimez bien l’ancienne notation des tableaux :

$arr = array(0 => "zero", 1 => "one");

 

Alors vous pouvez rajouter des espaces au niveau des parenthèses, comme cela :

$arr = array( 0 => "zero", 1 => "one" );

 

Personnellement, je trouve l’ancienne notation plus jolie. Intéressé ? Alors cochez l’option dans la rubrique Within : Array initializer parentheses.

 

Wrapping and Braces

Voici à mon avis la partie la plus importante. Nous allons y apporter un maximum de modifications.

Edition de Wrapping and Braces part-1

 

Pour commencer, vous allez devoir sélectionner la valeur présente dans la liste déroulante Extends/implements list et la passer à Wrap if long. L’objectif : faire un retour à la ligne lorsque les extends et implements sont trop long. Mais je trouve que ce n’est pas encore assez joli. Alors cochez aussi la case Align when multiline : ceci permet d’aligner les différentes implémentations (regardez la petite démo ci-dessous).

La dernière ligne à changer dans cette première partie se trouve dans la rubrique Function/constructor call arguments. Elle se nomme Align when multiline. Si vous êtes du genre à faire un retour à la ligne pour chacun de vos paramètres passés dans une fonction, PHPStorm les alignera pour que ce soit plus joli :

Avant :

            $result = foo("arg1",
                "arg2",
                10);

 

Après :

            $result = foo("arg1",
                          "arg2",
                          10);

 

C’est plus sympa, non ? On continue sur la partie basse :

Alignement Space PHPStorm

 

Ici, il y a pas mal de choses à cocher. On commence par la rubrique Assignment statement : cochez la case Align consecutive assignments. J’adore cette case car elle permet d’aligner les signes « égal ». Voici un petit exemple :

            $z = $argA == "Some string" ? "yes" : "no";
            $colors = array("red", "green", "blue", "black", "white", "gray");
            $count = count($colors);

 

Après :

            $z      = $argA == "Some string" ? "yes" : "no";
            $colors = array("red", "green", "blue", "black", "white", "gray");
            $count  = count($colors);

 

C’est plus agréable, non ? On continue avec la rubrique Class field/constant groups : cochez la case Align constants. C’est quasiment la même chose que pour la précédente case, mais ça s’applique aux constantes.

La dernière étape consiste à cocher tous les éléments enfants de la rubrique Array initialize, afin d’aligner correctement toutes les valeurs. Vous devez donc cocher Align when multiline, Align key-value pairs, New line after ‘(‘, Place ‘)’ on new line. Voici le résultat :

Avant :

        $x     = array("x", "y",
            array(1 => "abc",
                2 => "def", 3 => "ghi"));
        $zz    = array(0.1, 0.2,
            0.3, 0.4);

 

Après :

        $x     = array(
            "x", "y",
            array(
                1 => "abc",
                2 => "def", 3 => "ghi"
            )
        );
        $zz    = array(
            0.1, 0.2,
            0.3, 0.4
        );

 

C’est beaucoup plus simple à lire. Avec les short arrays, ce sera encore plus sympa.

 

Blank Lines

Cet onglet permet de définir le nombre de lignes blanches à appliquer, selon les cas. Par exemple le nombre de lignes blanches à mettre avant et après un namespace, avant un } et après un {, etc. Pour augmenter ou diminuer le nombre de retours à la ligne, c’est l’endroit parfait. En plus les paramètres sont simples à comprendre. Pour ma part, je n’ai rien changé.

 

PHPDoc

J’aime bien avoir une petite partie commentaires au-dessus des fonctions d’API, pour générer ensuite la documentation HTML afin de faire des requêtes sur mon API public. Cette documentation peut ressembler à un pavé pour certaines personnes, c’est pour cette raison que j’ai coché deux petites cases dans la configuration de PHPStorm :PHPDoc style in PHPStorm

 

La première coche Align parameter/property names permet d’aligner tous les nom de paramètres ainsi que leurs types et leurs descriptions (c’est encore plus esthétique). Quant à la dernière case, elle permet d’ajouter un retour à la ligne avant le premier paramètre, et un autre après le dernier paramètre.

 

Code Conversion

On y vient enfin : la conversion d’un array classique à un short array. Grâce à cet onglet, on va pouvoir changer tout ça.

Code Conversion in PHPStorm

 

On commence par le début : je pense que c’est bien d’uniformiser le code. Je vous conseille d’en parler avec votre équipe pour vous mettre d’accord sur une norme qui vous est propre.

Pour ma part, je préfère avoir les valeurs True et False en minuscule. Si vous souhaitez la même chose, vous devez cocher la case Convert True/False constants to: et sélectionner Lower case. Si vous souhaitez que la première lettre apparaisse en majuscule, vous pouvez cliquer sur Upper case.

Même chose pour la constante Null, il faut cocher Convert Null constant to: . Je préfère Lower case mais c’est à vous de voir. Vous pouvez personnaliser ces paramètres par projet s’il y a des différences entre équipes de développement… mais après bon courage pour suivre. Si c’est le cas, c’est sur cette liste déroulante que vous pourrez décider de sauvegarder les paramètres sur l’IDE en global ou sur le projet.

Changer de schéma de paramètrage PHPStorm

 

Plus question de majuscule ou minuscule, on se penche sur le else if ou elseif. J’ai toujours pris l’habitude du else if, et mon équipe aussi. Donc j’ai coché la case Convert else if/elseif to: et j’ai choisi else if.

On arrive à ma partie préférée de la rubrique Array Declaration Style : il faut cocher Force short declaration style. Ce qui nous permet de convertir automatiquement les array simples en short array. Voici un exemple :

Avant :

        $x = array(
            0   => "zero",
            123 => "one two three",
            25  => "two five"
        );

 

Après :

        $x = [
            0   => "zero",
            123 => "one two three",
            25  => "two five"
        ];

 

Code Generation

Je n’ai touché à rien dans cette rubrique car j’utilise très peu la génération automatique de code. Le principe consiste à modifier le style des noms de variables généré en Mixed ou camelCase ou snake_case. Vous pouvez aussi choisir la visibilité des champs par défaut en private, protected ou public. C’est typiquement utilisé dans la génération de propriété dans une classe. Je préfère qu’ils soient générés en private pour plus de sécurité. Concernant la case sur les commentaires, je vous avoue que je ne sais pas encore à quoi ça correspond.

 

Arrangement

Je ne me sers pas de cet onglet qui me parait complexe. Si vous avez des informations sur celui-ci, je veux bien un petit topo dans les commentaires de l’article. Merci d’avance !

 

En cadeau : le fichier de paramétrage

Maintenant que nous avons paramétré notre IDE préféré, je vous propose d’importer mon fichier de paramétrage. Celui-ci va cocher les cases importantes automatiquement, exactement comme je vous l’ai présenté. Voici le fichier XML que vous pouvez télécharger : Paramètre Code Style (il faut décompresser le ZIP).

 

Importer le fichier XML

Import configuration Code Style PHPStorm

 

Cliquez sur la molette, puis rendez-vous sur Import Scheme et Intellij IDEA code style XML. Un explorateur de fichier s’ouvre : sélectionnez mon fichier. Vous pourrez aussi exporter votre configuration à votre tour, à l’aide du bouton Export. Ainsi, vous pourrez envoyer le fichier aux membres de votre équipe… histoire de coder de la même manière.

 

Changer le raccourci de Reformat

Pour cela vous devez rester dans les paramètres et taper Keymap dans la recherche en haut à gauche, comme indiqué ci-dessous :

Changer le raccourci Reformat Code PHPStorm

 

Dans la seconde recherche à droite, saisissez Reformat. Vous devriez trouver en bas, dans la rubrique Code, le sous-élément Reformat Code. Soit ce raccourci vous convient, soit vous désirez le changer. J’ai préféré mettre CTRL + Shift + W. Vous n’avez qu’à cliquer dessus et indiquer la combinaisons de touches qui vous intéresse. N’oubliez pas d’appliquer et de valider en bas à droite de la fenêtre.

 

Le plaisir final du reformatage automatique avec PHPStorm

Je vous invite maintenant à vous rendre sur un code mal formaté pour déclencher votre raccourci. En fonction du nombre de lignes de code, il arrive que PHPStorm prenne un peu de temps pour les reformater. Mais ce temps « perdu » en vaut vraiment la peine, faites-moi confiance. Si par hasard votre combinaison de touche ne fonctionne pas, vous pouvez forcer le reformatage en allant le chercher dans le menu. Cliquez sur Code, puis Reformat Code.

Reformatage manuel avec PHPStorm

 

Maintenant, vous savez tout (ou presque) sur le reformatage de code. Vous n’avez donc plus d’excuses pour pousser un code « sale » en développement, en test et en production. J’espère que cet article de reformatage vous servira pendant longtemps, et je vous dis à bientôt pour une nouvelle publication.

Vous pourriez aussi aimer

Laisser un commentaire

Ce site utilise Akismet pour réduire les indésirables. En savoir plus sur comment les données de vos commentaires sont utilisées.