Phpcs (ou PHP Code Sniffer) est un inspecteur de code permettant de vérifier la validité du code écrits en fonction de standards.
Pour l'ajouter à notre projet drupal géré via composer :
composer require squizlabs/php_codesniffer --dev
# Ou si vous utilisez docker-compose
docker-compose exec php composer require squizlabs/php_codesniffer --dev
Drupal a son propre fichier de règles (un fichier xml) utilisable par phpcs, il est compris dans une dépendance drupal spécifique : coder
Pour l'installer :
composer require drupal/coder:^8.3.1 --dev
# Ou avec docker-compose
docker-compose exec php composer require drupal/coder:^8.3.1 --dev
Une fois coder installé, il faut informer phpcs de l'emplacement du fichier de règles (contenu dans coder) :
# /var/www/html/ est le docroot de mon projet dans mon container docker
docker-compose exec php vendor/bin/phpcs --config-set installed_paths /var/www/html/vendor/drupal/coder/coder_sniffer
On vérifie que « Drupal » est maintenant bien présent dans les standards de code installés :
docker-compose exec php vendor/bin/phpcs -i
# Ce qui devrait vous retourner :
# The installed coding standards are PEAR, PSR2, Zend, MySource, Squiz, PSR12, PSR1, DrupalPractice and Drupal
Et voila, nous pouvons maintenant lancer des inspections :
# Note : ici je me contente d'inspecter le module "mespronos" situé dans le dossier : ./web/modules/mespronos
docker-compose exec php ./vendor/bin/phpcs --colors --standard=Drupal --extensions=php,module,inc,install,test,profile,theme,css,info,txt,md,yml ./web/modules/mespronos
# on pourrait imaginer inspecter tous nos modules custom avec la commande suivante :
docker-compose exec php ./vendor/bin/phpcs --colors --standard=Drupal --extensions=php,module,inc,install,test,profile,theme,css,info,txt,md,yml ./web/modules/custom
Si vous utilisez un makefile (plus d'informations) vous pouvez vous créer un « raccourci » :
## phpcs : Launch phpcs inspections for ./web/modules/custom
phpcs:
@docker-compose exec php ./vendor/bin/phpcs --colors --standard=Drupal --extensions=php,module,inc,install,test,profile,theme,css,info,txt,md,yml ./web/modules/custom
Ainsi pour lancer vos inspections, vous n'aurez qu'à lancer la commande « make phpcs »
Ajouter un commentaire