Utiliser PHP_codeSniffer : les bases

, par clem

Usage : quelques exemples de commandes

Tester un fichier php seul :

Tester un dossier complet : par ex à la racine d’un répertoire de plugin
(/ !\ attention ! lancer phpcs sur un gros dossier avec beaucoup de fichiers (php / css / js) sans faire de restrictions via la configuration peut entraîner une GROSSE charge pour votre processeur !)

devrait retourner tout un tas d’erreurs à corriger, pour à peu près tous les types de fichiers (js, css, php)

Restreindre la portée du scan aux fichiers PHP, exclure des dossiers :
En ajoutant le fichier phpcs.xml à la racine du répertoire avec le contenu proposé dans momh.fr, on doit restreindre la détection des erreurs aux fichiers .html et .php
Le contenu du fichier :

Tester uniquement avec les coding-standard de SPIP :

Ne pas afficher les warnings (uniquement les erreurs) :

Colorer la sortie :

Compléments de configuration : l’option —config-set

Utilisation de l’option —config-set :
par exemple si vous n’utilisez phpcs/phpcbf que pour les standards SPIP, pour éviter d’ajouter l’option --standard=SPIP41 à chaque appel de la commande, vous pouvez passer ce paramètre en option par défaut avec :

NB : cela donne une configuration écrite dans le fichier ...Composer/vendor/squizlabs/php_codesniffer/CodeSniffer.conf qu’il est possible de bricoler directement aussi
La syntaxe de cette option est de la forme :

par ex pour avoir la coloration par défaut

La documentation pour les configurations possibles avec l’option —config-set :
https://github.com/squizlabs/PHP_CodeSniffer/wiki/Configuration-Options

Exemple de fichier de configuration CodeSniffer.conf pour colorer systématiquement, utiliser les standards SPIP41 et ignorer les warnings :

Spécifique installation sous Windows :

Adaptations du post de https://momh.fr/installer-globalement-php_codesniffer
On suppose :

1/ Installation globale :

Tester que c’est OK :

doivent retourner le Help avec toutes les options de la commande

2/ Déclarer le répertoire des standards SPIP à PHP_CodeSniffer :

cette commande devrait retourner :

Pour tester que la config est OK la commande :

devrait retourner quelque chose comme :

Références :