Bonjour,
J’ai mis en place spip-league / easy-coding-standard · GitLab qui peut être utilisé en outil de dev dans les projets pour faciliter la configuration de « ecs.php », c’est à dire de l’outil easy-coding-standard.
Cet outil ECS permet d’appliquer donc des formatages pour le code PHP, en s’appuyant
- soit sur des règles de
php-cs-fixer
- soit sur des règles de
php_codesniffer
qui sont les 2 gros outils pour faire cela habituellement.
Le tout avec une configuration lisible, la même que Rector par ailleurs.
Dans spip-league/easy-coding-standard (1.0) on y déclare une « setlist », avec certaines propriétés appliqués dessus (notamment l’indentation « tab » hum , ce qui est hors des préconisations PHP PER donc).
Le fichier ecs.php résultant dans un projet peut donc simplement y décrire la liste des fichiers et répertoire sur lequel appliquer le traitement, par exemple
<?php
use SpipLeague\EasyCodingStandard\Set\SetList;
use Symplify\EasyCodingStandard\Config\ECSConfig;
return ECSConfig::configure()
->withSets([SetList::SPIP])
->withPaths([__DIR__])
->withRootFiles()
->withSkip([__DIR__ . '/lang', __DIR__ . '/vendor'])
;
Dans le cas d’une librairie (pas un plugin SPIP actuel), en général on écrirait qqc comme cela :
<?php
use SpipLeague\EasyCodingStandard\Set\SetList;
use Symplify\EasyCodingStandard\Config\ECSConfig;
return ECSConfig::configure()
->withSets([SetList::SPIP])
->withPaths([__DIR__ . '/src', __DIR__ . '/tests'])
->withRootFiles()
;
À noter que pour pouvoir installer correctement cet outil sur un projet, il faut donc un fichier composer.json d’une part, la déclaration de notre dépot Composer « spip »
composer config repositories.spip composer https://get.spip.net/composer
composer req --dev spip-league/easy-coding-standard
Cet outil peut donc remplacer a priori spip/coding-standard qui était géré par James