Accueil Technologies GitHub Actions & PHP CodeSniffer – contrôler automatiquement le code régulièrement
GitHub Actions & PHP CodeSniffer - contrôler automatiquement le code régulièrement

GitHub Actions & PHP CodeSniffer – contrôler automatiquement le code régulièrement

par Jérémy PASTOURET
Publié : Mis à jour le

Développer des projets requiert du temps, de la patience, du contrôle, de la réflexion et encore plein d’autres choses importantes. Malgré toutes ces étapes et contraintes, il existe de nombreux outils et services pour vous faciliter la vie. En combinant GitHub Actions et PHP CodeSniffer, vous allez gagner beaucoup de temps et protéger votre projet des bugs éventuels. Si vous n’avez jamais entendu parler de GitHub Actions, je vous invite à lire mon article dédié. De même pour PHP CodeSniffer : cet article présente ses nombreux avantages au quotidien.

Installation locale de PHP CodeSniffer

Bannière développeurs

La première étape consiste à faire fonctionner PHP CodeSniffer de manière locale sur votre ordinateur. En d’autres termes, vous devez ajouter PHP CodeSniffer au projet pour lequel vous souhaitez ajouter une couche de validation.

Pour cela, nous allons utiliser Composer, afin d’installer PHP CodeSniffer comme librairie uniquement utile pour du développement. Si vous ne connaissez pas Composer, il s’agit d’un outil qui permet d’installer des dépendances / librairies externes écrites par des développeurs.

Pour lancer l’installation, ouvrez un terminal. Puis placez-vous dans le répertoire de votre projet et lancez la commande suivante :

composer require --dev squizlabs/php_codesniffer

Composer va ensuite installer le composant et l’ajouter au fichier composer.json. De cette manière, d’autres développeurs pourront installer PHP CodeSniffer et valider le code sur leur ordinateur. Si vous avez des questions sur l’installation de cet outil, consultez l’article qui lui est dédié.

Création d’un fichier de configuration pour PHP CodeSniffer

Création d'un fichier de configuration pour PHP CodeSniffer

A la racine de votre projet, vous devez créer un fichier phpcs.xml.dist. Ajoutez-y le contenu suivant (le projet est téléchargeable en fin d’article) :

phpcs.xml.dist exemple

Explication du fichier de configuration :

  • ruleset : crée une liste de règles de validation. Il est utile de lui donner un nom. Avec Phalcon, j’ai l’habitude d’appliquer la PSR-12.
  • description : décrit la liste des règles qui vont être énumérées.
  • arg : paramètres utilisés par PHP CodeSniffer ( p = barre de progression, -colors = des logs de couleurs). Tous les paramètres sont expliqués sur cette page.
  • rule : indique des règles normées et écrites par le collectifs PHP-FIG.
  • file : indique le répertoire de code à analyser. Dans le cade de ce tutoriel, le code à analyser se trouve dans le répertoire src.

Tester la validation du code en local avec PHP CodeSniffer

Tester la validation du code en local avec PHP CodeSniffer

Il vous suffit d’ouvrir un terminal, d’aller dans votre projet et de lancer la commande suivante :

./vendor/bin/phpcs

Si des erreurs apparaissent, vous pouvez tenter la commande de correction automatique de PHP CodeSniffer :

./vendor/bin/phpcbf

Création du processus GitHub Actions

Logs de GitHub Actions avec PHP CodeSniffer

A la racine de votre projet, créez un répertoire .github/workflows. A l’intérieur de ce dossier, ajoutez un fichier validations.yml. GitHub analyse tous les fichiers présents dans le répertoire .github/workflows. Vous pouvez donc créer autant de processus .yml que vous le souhaitez. Peu importe leur nom, GitHub tentera de les lancer.

A l’intérieur du fichier validations.yml, ajoutez le contenu suivant :

Validations.yml processus avec GitHub Actions

Explication du contenu du processus ci-dessus :

  • name : indique le nom du processus qui sera aussi repris dans GitHub. Il est important d’indiquer un nom parlant.
  • on : indique le ou les évènements déclenchant ce processus dans GitHub Actions. Dans mon exemple, c’est lors d’un push ou d’un pull request.
  • jobs : définit une liste d’opérations que GitHub Actions doit effectuer.
  • runs-on : indique le système d’exploitation sur lequel il faut lancer le processus. Dans mon exemple, j’utilise Ubuntu.

Ensuite, je lance diverses opérations permettant de valider le fichier composer.json (cette partie est utile si vous créez une librairie). Enfin, j’installe PHP CodeSniffer et je lance la commande phpcs. Si le programme renvoie une erreur, GitHub Actions le signalera. Avec GitHub Actions, vous pouvez bloquer la mise à jour de code tant que celui-ci n’a pas de processus valide. C’est très pratique pour s’assurer que la qualité du code reste au top.

Pour vérifier que le processus a bien été défini, il ne vous reste plus qu’à envoyer votre code sur GitHub et à vous rendre dans la rubrique GitHub Actions. Cliquez maintenant sur le dernier processus pour voir le résultat.

Vérifier le processus GitHub Actions avec PHP CodeSniffer

Conclusion

Bannière métro - Pourquoi passer au Dark mode ou mode sombre

Vous êtes maintenant bien équipé·es pour réaliser des projets PHP de grande qualité. Si vous développez avec d’autres langages, rien de vous empêche d’adapter mon code pour utiliser un autre outil de validation. Il en existe beaucoup à l’heure actuelle.

Vous pouvez récupérer le code complet de GitHub Actions associé à PHP Code Sniffer en remplissant le formulaire ci-dessous :

Utilisez-vous déjà ces outils dans vos projets perso et pro ?

Si vous aimez utiliser le programme de versionning Git, je vous invite à créer des commandes plus courtes grâce aux alias Git. Pour en savoir plus, c’est par ici que ça se passe.

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.