Présentation de GrumPHP

Quand on travaille à plusieurs sur un projet, il peut être intéressant de mettre en place des outils de qualité de code afin d’harmoniser le code source que vous souhaitez mettre en place sur votre projet (linter, CodeSniffer et tests) mais pour cela, il faudra alors s'assurer que tous les collaborateurs les utilisent afin d'en tirer réellement partie et c'est là que GrumPHP rentre en jeux.

Qu'est ce que GrumPHP ?

GrumPHP est un outil de test de qualité de code. Son but : lancer tout une batterie de test (phpcs, eslint, yamllint...) avant de commiter son code via les hooks de Git. L'avantage comparé à un script manuel, c'est qu'il va automatiquement créer les hooks git dans le dossier .git/hook/

Installation de GrumPHP à partir de drupal-quality-checker

Mise en place du fichier de conf GrumPHP

À la racine de votre projet créer un fichier qui va s'appeler  grumphp.yml

PS: Si vous utilisez docker, vous devez renseigner la partie git_hook_variables

- VAGRANT_PROJECT_DIR: correspond au dossier racine de votre Drupal dans le container

- EXEC_GRUMPHP_COMMAND: commande docker compose (ici mon container s'appelle web

  1. parameters:
  2.   ascii:
  3.     failed: vendor/vijaycs85/drupal-quality-checker/resources/ascii/grumpy.txt
  4.     succeeded: vendor/vijaycs85/drupal-quality-checker/resources/ascii/happy.txt
  5.   git_dir: .
  6.   bin_dir: vendor/bin
  7.   git_hook_variables:
  8.     VAGRANT_PROJECT_DIR: /project
  9.     EXEC_GRUMPHP_COMMAND: docker-compose run --no-deps web
  10.   tasks:
  11.     phplint: ~
  12.     yamllint: ~
  13.     composer: ~
  14.     composer_normalize: ~
  15.     jsonlint: ~
  16.     twigcs: ~
  17.     phpcpd:
  18.       directory: './src'
  19.     phpcs:
  20.       standard: Drupal
  21.       ignore_patterns:
  22.         - .github
  23.         - .gitlab
  24.         - bower_components
  25.         - node_modules
  26.         - vendor
  27.       triggered_by:
  28.         - php
  29.         - module
  30.         - inc
  31.         - install
  32.         - test
  33.         - profile
  34.         - theme
  35.         - css
  36.         - info
  37.         - txt
  38.         - md

Installation du package drupal-quality-checker

  1. $ composer require --dev vijaycs85/drupal-quality-checker:dev-master

Au moment d'écrire ces ligne la dernière version tagué de drupal-quality-checker, n'intégrait pas le paramètre git_hook_variables, c'est pour cela que j'ai prise la branche master.
 

Une fois installé, 2 hooks vont être crée .git/hooks/pre-commit et .git/hooks/commit-msg

 

 

Lorsque vous commitez voici le résultat :

 

Coding Standard Drupal

Ajouter un commentaire

Image CAPTCHA
Saisir les caractères affichés dans l'image.