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
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.
J'ai mis en ligne tard vendredi soir ma première vidéo de mini-formation à drupal.
J'ai commencé par un sujet basique : Le téléchargement et l'installation du CMS Drupal avec composer.
La vidéo est disponible gratuitement sur youtube et dure 20 minutes.
Ajouter un commentaire