
Améliorer la qualité du code avec l'outil PHP_CodeSniffer
Écrire du code selon les normes permet d'accélérer la création du projet. Il est plus facilement extensible et plus lisible – grâce à cela, les nouvelles personnes sur le projet peuvent plus rapidement déployer et fournir des solutions optimales. La communauté PHP s'efforce constamment d'améliorer la qualité du code. Des outils pour soutenir l'écriture de code conforme aux normes ont été développés au fil des ans. Dans ce texte, je vais en présenter un : PHP_CodeSniffer.
Je vais également vous présenter le module Drupal Coder, qui contient des normes pour écrire le code pour Drupal. Il peut également être utilisé pour corriger automatiquement le code en utilisant phpcbf.
Qu'est-ce que PHP CodeSniffer?
PHP_CodeSniffer aide à garder votre code propre et conforme aux normes. L'outil se compose de deux scripts.
- phpcs - tokenise le code PHP, JS et CSS et détecte les écarts par rapport à la norme d'écriture de code définie,
- phpcbf - corrige automatiquement le code selon les règles définies.
La version PHP 5.4.0 ou supérieure est requise pour le bon fonctionnement de l'outil.
Installation
PHP_CodeSniffer peut être installé en utilisant Composer, cURL ou Wget. Je recommande de l'installer via Composer, mais il est bon de noter qu'il est également possible de l'installer via Composer à l'intérieur d'un conteneur Docker – si vous utilisez Docker, utilisez cette méthode d'installation.
Composer
composer global require "squizlabs/php_codesniffer=*"
cURL
curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
curl -OL https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar
Wget
wget https://squizlabs.github.io/PHP_CodeSniffer/phpcs.phar
wget https://squizlabs.github.io/PHP_CodeSniffer/phpcbf.phar
Après avoir téléchargé les packages, vous pouvez les tester.
Composer
cURL, Wget
php phpcs.phar -h
php phpcbf.phar -h
Utilisation
Les scripts phpcs et phpcbf utilisent le standard de codage PEAR. Le standard de codage peut être spécifié en utilisant le paramètre -- standard.
Pour tester un fichier unique, utilisez la commande :
$ phpcs filename.php
$ phpcbf filename.php
Vous pouvez également tester un répertoire entier :
$ phpcs /path/to/directory
$ phpcbf /path/to/directory
Le script phpcs vous informera sur les erreurs trouvées dans le standard de codage. Exemple de résultats de test :
Chaque erreur marquée d'un "x" peut être corrigée automatiquement en utilisant le script phpcbf.
La correction des erreurs restantes nécessite l'intervention du programmeur. En général, ce sont des erreurs telles que l'absence de balises correctes dans le commentaire de la classe.
Coder - module Drupal
Le module Coder fournit un ensemble de principes de programmation utilisés dans Drupal. Utilisé avec PHP_CodeSniffer, il aide à corriger les bogues dans le standard de codage.
Installation
Nous installons le module via Composer: composer require drupal/coder
Utilisation
Vérifier le standard de codage est similaire à ce que j'ai montré précédemment ; vous n'utilisez que le paramètre --standard, auquel vous donnez la valeur "Drupal".
Intégration avec PHPStorm
Les scripts PHP_CodeSniffer et le ruleset du module Coder peuvent être intégrés avec les IDE les plus populaires. Prenons PHPStorm comme exemple.
phpcs
Tout d'abord, vous devez fournir le chemin vers le script phpcs dans PHPStorm. Pour ce faire, allez dans Paramètres -> Langages et Cadres -> PHP -> Outils de qualité -> PHP_CodeSniffer
Ensuite, vous ajoutez une nouvelle configuration et dans le chemin PHP_CodeSniffer, vous fournissez le chemin vers le script. Vous pouvez vérifier la validité du chemin en cliquant sur le bouton valider.
Puis, pour activer la validation du code et choisir le standard donné, allez dans Paramètres -> Éditeur -> Inspections -> Outils de qualité et sélectionnez l'option Validation PHP_CodeSniffer.
Coder
Pour ajouter le ruleset du module Coder, sélectionnez Personnalisé dans la liste déroulante Standard de codage. Dans la fenêtre contextuelle, ajoutez le chemin vers le fichier ruleset.xml fourni avec le module.
Pour que le script vérifie les fichiers .module, .install, .theme, ajoutez ces extensions à la liste “Vérifiez les fichiers avec extensions”.
À ce stade, phpcs est déjà correctement intégré à PHPStorm.
En cas de non-respect d'une règle, PHPStorm mettra en évidence la ligne qui ne respecte pas les normes, ainsi que fournira des informations précises sur la règle qui a été enfreinte.
PHPStorm peut être intégré avec PHP Code Beautifier and Fixer, et cela ne nécessite aucune configuration supplémentaire. Depuis le niveau IDE, vous pouvez corriger automatiquement toutes les erreurs dans le fichier que vous corrigiez précédemment avec ce script dans le terminal. Pour ce faire, trouvez une erreur dans le fichier et cliquez sur ou appuyez sur Alt+Enter.
PHP CodeSniffer - résumé
PHP_CodeSniffer et le module Coder améliorent le travail des programmeurs dans les services de développement PHP de notre agence. Le code écrit conformément aux normes est plus facile à maintenir et à développer. Les nouvelles personnes rejoignant le projet déploieront plus rapidement. Et si le projet est transféré à une nouvelle équipe, le processus de mise en œuvre prendra également moins de temps. Chez Droptica, PHP_CodeSniffer et le module Coder sont la norme utilisée par chaque programmeur.