Utiliser PHP-CS-fixer avec PHPStorm
Les normes sont utiles afin que tous le monde puisse facilement lire du code source avec une certaines uniformité. Ainsi l’on repère facilement les différents blocs etc. Bien qu’elles devraient être obligatoire de nombreux développeur ne les utilises pas. Souvent parce que les contraintes de saut de lignes, d’indentations etc. sont trop nombreuses. Heureusement il existe des outils pour le faire de manière automatique. En PHP la norme est le PSR, nous allons donc voir comment utiliser php-cs-fixer pour pouvoir rendre votre code conforme.
Etape 1 : Pre-requis
Pour pouvoir utiliser cet outil vous devez avoir php d’installé sur votre PC, ainsi que php-cs-fixer.
Vous pouvez récupérer php-cs-fixer Ici. Personnellement j’ai récupéré l’archive phar.
Etape 2 : Configuration
Nous allons donc définir un external tools dans PHPStorm, pour cela on se rend dans les options ( ctrl + alt + S) puis dans l’onglet external tools. On en ajoute un nouveau et on rempli comme ci-dessous
Dans program on met le lien vers l’exécutable php, j’ai utilisé la macro php de PHPStorm pour être plus générique, cela utilisé l’exécutable défini dans PHPStorm.
Dans parameters on met le chemin vers le fichier php-cs-fixer (le .phar chez moi) le niveau a utiliser (psr2) l’option verbose le mot clef fix et surtout le chemin vers le fichier courant avec les macros afin de pouvoir s’en servir sur n’importe quel projet php ouvert avec l’ide.
Voici mes paramètres, a adapter selon vos besoin bien entendu (surtout le chemin vers le fichier php-cs-fixer)
Program
$PhpExecutable$
Parameters
D:\Projets\php-cs-fixer.phar --level=psr2 --verbose fix $FileDir$/$FileName$
Working directory
$ProjectFileDir$
Etape 3 : Utilisation
Maintenant vous pouvez vous en servir en allant dans Tools > External Tool > PHP cs fixer (ou autre si vous avez changé le nom). Mais aussi lors du click droit sur un fichier/dossier en allant dans le sous menu external tools.
Je vous conseille par contre de mettre un raccourci (keymap -> external tools -> php cs fixer) pour pouvoir l’appliquer directement avec le clavier.
Pour automatiser cette options vous pouvez faire un hook avec git sur le pre-commit ou définir un file watcher dans PHPStrom. L’action sera faite au moment de la sauvegarde. Plus d’information ici
comments powered by Disqus