hysryt / wiki

https://hysryt.github.io/wiki/
0 stars 0 forks source link

Rector #195

Open hysryt opened 2 years ago

hysryt commented 2 years ago

https://getrector.org/

hysryt commented 2 years ago

古いPHPコードをアップグレードしてくれるツールらしい

hysryt commented 2 years ago

インストール

Composer でインストールする。

mkdir test_project
cd test_project
composer require rector/rector --dev

初期設定

./vendor/bin/rector init

rector.php が作られる。

ContainerConfigurator でエラーが出てるけど問題ない。

実行

./vendor/bin/rector

適用された変更は自動的に保存される。 コンソール上で確認だけしたい場合は

./vendor/bin/rector --dry-run

設定

設定は rector.php で行う。 rector init で自動的に生成された rector.php は以下のようになっている。

<?php

declare(strict_types=1);

use Rector\Core\Configuration\Option;
use Rector\Php74\Rector\Property\TypedPropertyRector;
use Rector\Set\ValueObject\LevelSetList;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;

return static function (ContainerConfigurator $containerConfigurator): void {
    // get parameters
    $parameters = $containerConfigurator->parameters();
    $parameters->set(Option::PATHS, [
        __DIR__ . '/src'
    ]);

    // Define what rule sets will be applied
    $containerConfigurator->import(LevelSetList::UP_TO_PHP_81);

    // get services (needed for register a single rule)
    // $services = $containerConfigurator->services();

    // register a single rule
    // $services->set(TypedPropertyRector::class);
};

src ディレクトリのファイルに対し、 LevelSetList::UP_TO_PHP_81 というルールセットを適用している。