Lancer une inspection PHP Code Sniffer pour un drupal dans un container docker

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 »

 

Contenus en rapport

Accélérer l'administration de son site drupal avec Makefile

Un Makefile est un fichier contenant des rules, (des fonctions) permettant d’exécuter une suite d'action. Beaucoup utilisé dans les langages compilés pour permettre de gérer la compilation d'un programme, c'est aussi utilisable dans le cadre d'un projet php.

J'ai découvert les Makefile après avoir commencé à utiliser docker pour mes projets web.

Ajouter un commentaire

Ne sera pas publié
CAPTCHA
Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...