Utiliser Rector

Rector est un outil de refactoring et d’amélioration automatisé de code PHP ; SPIP s’est doté d’un jeu de règles : https://git.spip.net/spip-league/rector.

Préalable

Il faut un fichier composer.json à la racine du plugin, dans lequel on déclare le dépôt composer propre à SPIP :

{
 "repositories": { 
 "spip": { 
 "type": "composer", 
 "url": "https://get.spip.net/composer" 
 } 
 }
}

Installation

composer require --dev rector/rector spip-league/rector:"dev-main"

Configuration

La configuration se fait dans le fichier rector.php à la racine de votre plugin :

<?php 
 
declare(strict_types=1); 
 
use Rector\Config\RectorConfig; 
use Rector\Set\ValueObject\LevelSetList; 
use SpipLeague\Component\Rector\Set\SpipSetList; 
 
return RectorConfig::configure() 
 ->withPaths([__DIR__]) 
 ->withRootFiles() 
 ->withSets([SpipSetList::SPIP_41, LevelSetList::UP_TO_PHP_74]) 
 ->withSkip([ 
 __DIR__ . '/lang', 
 __DIR__ . '/vendor', 
 ]) 
;

On peut configurer des scripts dans le fichier composer.json :

 "scripts": { 
 "rector": "vendor/bin/rector process --ansi", 
 "rector-dry-run": "vendor/bin/rector process --dry-run --ansi" 
 }

Usage

composer rector-dry-run
composer rector
composer rector dossier/fichier

Auteur bricebou Publié le :