Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Rector #195

Open
hysryt opened this issue Feb 22, 2022 · 2 comments
Open

Rector #195

hysryt opened this issue Feb 22, 2022 · 2 comments

Comments

@hysryt
Copy link
Owner

hysryt commented Feb 22, 2022

https://getrector.org/

@hysryt
Copy link
Owner Author

hysryt commented Feb 22, 2022

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

@hysryt
Copy link
Owner Author

hysryt commented Feb 22, 2022

インストール

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 というルールセットを適用している。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant