Utiliser PHP-CS-fixer avec PHPStorm

May 21, 2015

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

configuration phpcsfixer

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