この記事で説明すること
rectorという自動リファクタリングツールを使って未使用のuse文を一括削除する方法を説明!
課題感
なんか使ってるか使っていないかわからないが、未使用なuse文がたくさんコード上に存在している!
手動で消すのもファイル数が多くてめんどくさい!!って人向けに、秘術をお伝えします!
これで君もいちいちコードに「使っていないんかーーーい!!」と突っ込まなくて済む快適なエンジニアライフを送れるはずだ!!
筆者の動作環境
- laravel10系
- composerが動く!
まず動かしてみる
インストール
composer require rector/rector --dev
rector.phpを修正
下記コードをもとに、動作させたいディレクトリのパスを入れる!
<?php
declare(strict_types=1);
use Rector\Config\RectorConfig;
return static function (RectorConfig $rectorConfig): void {
// rectorを動作させたいパスを指定する
$rectorConfig->paths([
// __DIR__ . '/app',
]);
// rector内で動作させたい設定を呼ぶ
$rectorConfig->removeUnusedImports();
$rectorConfig->rules([
// こちらに追加したいルールを記載する
// 例
Rector\Arguments\Rector\MethodCall\RemoveMethodCallParamRector::class,
// @see https://github.com/rectorphp/rector-phpunit/blob/main/docs/rector_rules_overview.md
// @see https://github.com/rectorphp/rector/blob/main/docs/rector_rules_overview.md
]);
$rectorConfig->skip([
// SKIPしたいルールをこちらに記載する
]);
$rectorConfig->sets([
// ルールセットを記載する
]);
};
コマンド実行
/vendor/bin/rector process --dry-run
実行完了すると、対象ファイル数と対処箇所がコンソール上に出力される
dry-runオプションを消すことで、実際のコードにも反映できる
/vendor/bin/rector process
他にも
色々と自動リファクタリングできる!
- コード品質の向上
- デッドコードの削除
- テストコードの品質向上
- PHPバージョンアップ対応
まとめ
コードにツッコミを入れながら読むようなエンジニアは、rectorを使うことで、「こんなに修正箇所あるんかーーい」と自分の見る目のなさにツッコミを入れることになるかもしれない。
ただ、それは今まで見えてなかった事象が見えたという観点での成長のチャンスかもしれない。
めげずにエンジニアライフを満喫して欲しいと心から思いながら、この記事を締めさせていただきたいと思う
敬具