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

Posté le Mercredi 18 novembre 2020 - 08:30
Dernière mise à jour le Jeudi 19 novembre 2020 - 07:11

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 :

  1. composer require squizlabs/php_codesniffer --dev
  2.  
  3. # Ou si vous utilisez docker-compose
  4.  
  5. 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 :

  1. composer require drupal/coder:^8.3.1 --dev
  2.  
  3. # Ou avec docker-compose
  4.  
  5. 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) :

  1. # /var/www/html/ est le docroot de mon projet dans mon container docker
  2. 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 :

  1. docker-compose exec php vendor/bin/phpcs -i
  2. # Ce qui devrait vous retourner :
  3. # The installed coding standards are PEAR, PSR2, Zend, MySource, Squiz, PSR12, PSR1, DrupalPractice and Drupal

Et voila, nous pouvons maintenant lancer des inspections :

  1. # Note : ici je me contente d'inspecter le module "mespronos" situé dans le dossier : ./web/modules/mespronos
  2. 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
  3.  
  4. # on pourrait imaginer inspecter tous nos modules custom avec la commande suivante :
  5. 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 » :

  1. ## phpcs : Launch phpcs inspections for ./web/modules/custom
  2. phpcs:
  3. @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 »

 

Aller plus loin ?

 

Ajouter un commentaire

Ne sera pas publié

HTML restreint

  • Balises HTML autorisées : <a href hreflang> <em> <strong> <cite> <blockquote cite> <code> <ul type> <ol start type> <li> <dl> <dt> <dd> <h2 id> <h3 id> <h4 id> <h5 id> <h6 id>
  • Les lignes et les paragraphes vont à la ligne automatiquement.
  • Les adresses de pages web et les adresses courriel se transforment en liens automatiquement.
CAPTCHA Désolé, pour ça, mais c'est le seul moyen pour éviter le spam...