Salut,
Vous connaissez certainement les pages suivantes :
- Outils pour tester la conformité d’un code php avec les PSR-12
- Jeux de règles PSR_SPIP
- Étendre SPIP - SPIP
J’ai adopté le fichier de configuration pour PHP_CodeSniffer qui y est proposé il y a 2 ans quand j’ai démarré le développement du plugin des versions maintenue : phpcs.xml.dist
Je contribue très occasionnellement au plugin univers_spip et je me suis dit que se serait intéressant d’y appliquer les mêmes règles de codage. je les avais d’ailleurs appliquées pour spip_loader il y a longtemps sans toutefois versionner le fichier xml…
Par contre, quand on s’en sert pour SPIP lui-même, le rapport n’est pas fameux… :
--------------------------------------------------------------------------------------------------------------
A TOTAL OF 6090 ERRORS AND 733 WARNINGS WERE FOUND IN 298 FILES
--------------------------------------------------------------------------------------------------------------
PHPCBF CAN FIX 5901 OF THESE SNIFF VIOLATIONS AUTOMATICALLY
--------------------------------------------------------------------------------------------------------------
En affinant un peu (en excluant d’autres règles « PSR », qu’on suit peu ou pas en fait), on arrive à un résultat plus intéressant :
------------------------------------------------------------------------------------------------------------
A TOTAL OF 5821 ERRORS AND 6 WARNINGS WERE FOUND IN 207 FILES
------------------------------------------------------------------------------------------------------------
PHPCBF CAN FIX 5815 OF THESE SNIFF VIOLATIONS AUTOMATICALLY
------------------------------------------------------------------------------------------------------------
L’idée de copier/coller un fichier dans différents dépôts git ne me satisfaisant pas particulièrement, j’ai créé un plugin pour PHPCodeSniffer, installable via composer et qui introduit aussi la vérification de compatibilité PHP.
Le fichier de configuration à utiliser pour SPIP ou un plugin quelconque en est simplifié : phpcs.xml.dist · master · James / supported-versions · GitLab
Ce plugin propose à ce jour 2 « rulesets » :
- SCS1 pour SPIP Coding Standards 1 contient les règles définies de longues dates plus les quelques exclusions que j’ai ajouté,
- SPIP40 qui inclut SCS1 et vérifie la compatibilité PHP pour SPIP 4.0, à savoir PHP 7.3-8.0
Je vais faire une PR pour les répertoires ./ecrire
et ./prive
pour montrer les changements…