Passe avec Rector

J’ai relancé une passe avec Rector pour voir ce que ça donnait, en particulier sur l’aspect compatibilité avec les versions de PHP qu’on souhaite supporter, 7.4, 8.0, 8.1 et 8.2, pour la version 2.25 — sachant qu’on fera probablement l’impasse sur la 7.4 pour la 2.26, voire la 8.0 aussi, tant qu’à faire.

Ça m’a permis de faire quelques retouches à la marge et de trouver un bug dans du code peu utilisé !

Ma config Rector du moment :

<?php

declare(strict_types=1);

use Rector\Config\RectorConfig;
use Rector\Core\ValueObject\PhpVersion;
use Rector\Set\ValueObject\LevelSetList;
use Rector\Set\ValueObject\SetList;
use Rector\Set\ValueObject\DowngradeLevelSetList;

return static function (RectorConfig $rectorConfig): void {
    $rectorConfig->paths([
        __DIR__,
    ]);

    // Example;
    //
    // PHP >= 7.4 and <= 8.2
    //  $rectorConfig->sets([SetList::PHP_82, LevelSetList::UP_TO_PHP_81]);
    //  parameter must be defined after import, to override imported param version
    //  $rectorConfig->phpVersion(PhpVersion::PHP_74);
    //
    // Code quality
    //  $rectorConfig->sets([SetList::CODE_QUALITY]);

    $step = '74_82';

    switch ($step) {
        case '81_82':
            // From PHP 8.1 up to PHP 8.2
            $rectorConfig->sets([SetList::PHP_82, LevelSetList::UP_TO_PHP_81]);
            $rectorConfig->phpVersion(PhpVersion::PHP_81);

            break;
        case '81':
            // Ensure PHP 8.1 compliance
            $rectorConfig->sets([DowngradeLevelSetList::DOWN_TO_PHP_81]);
            $rectorConfig->phpVersion(PhpVersion::PHP_81);

            break;
        case '80_82':
            // From PHP 8.0 up to PHP 8.2
            $rectorConfig->sets([SetList::PHP_82, LevelSetList::UP_TO_PHP_81]);
            $rectorConfig->phpVersion(PhpVersion::PHP_80);

            break;
        case '80':
            // Ensure PHP 8.0 compliance
            $rectorConfig->sets([DowngradeLevelSetList::DOWN_TO_PHP_80]);
            $rectorConfig->phpVersion(PhpVersion::PHP_80);

            break;
        case '74_82':
            // From PHP 7.4 up to PHP 8.2
            $rectorConfig->sets([SetList::PHP_82, LevelSetList::UP_TO_PHP_81]);
            $rectorConfig->phpVersion(PhpVersion::PHP_74);

            break;
        case '74':
            // Ensure PHP 7.4 compliance
            $rectorConfig->sets([DowngradeLevelSetList::DOWN_TO_PHP_74]);
            $rectorConfig->phpVersion(PhpVersion::PHP_74);

            break;
    }
};

Je modifie la valeur de la variable $step en fonction des besoins, puis je lance la vérification avec (modifiez le chemin vers le fichier de configuration si nécessaire) :

rector process --dry-run --verbose --config ./rector.php

Et si besoin j’applique les modifications proposées avec :

rector process --verbose --config ./rector.php

Il peut être utile de rajouter le paramètre --memory-limit=… si nécessaire (ex: 512M, ou 2G)

Ajouter un commentaire

Les champs suivis d'un * sont obligatoires

Les commentaires peuvent être formatés en utilisant la syntaxe Markdown Extra.

Ajouter un rétrolien

URL de rétrolien : https://open-time.net/trackback/15589

Haut de page