Afin d’uniformiser nos développements, nous avons décidé de suivre des conventions de code. Les projets deviennent ainsi plus homogènes et la revue de code, comme la maintenance, s’en trouvent simplifiées. Comme la majorité de nos services sont en PHP, nous utilisons PHP CodeSniffer.

Le manque

Cependant, l’éventail des frameworks utilisés en interne (Symfony, ZF, homemade) ne nous permet pas d’employer une seule et même convention. De plus, l’organisation des projets est assez hétérogène (ex: les répertoires de test ne se nomment pas tous de la même manière). Nous avions donc besoin de pouvoir configurer spécifiquement PHP CodeSniffer pour chacun de nos projets.

Le deal

A la manière de Travis, nous avons opté pour la méthode dite “du fichier .truc posé à la racine de chaque projet” (tm). Nous avons donc développé Coke, un script de sniff, qui lance PHP CodeSniffer avec la configuration contenu dans le fichier “.coke” la racine du projet :

Ainsi, lorsque le fichier est paramétré et que le script coke est correctement installé sur le système, il suffit d’exécuter la commande “coke” depuis la racine du projet sniffer.

Le fix

Dans l’optique d’automatiser le plus possible nos processus, nous avons inséré la vérification des coding styles à l’aide de Coke, dans un hook git de pre-commit.

Coke est disponible en open-source sur le compte GitHub de M6Web.

Enjoy !