Rector は、アプリケーションの PHP コードを即座にアップグレードしてリファクタリングします。次の 2 つの主要な領域で役立ちます。
Rector は、PHP 5.3 から 8.4 へのアップグレードと、Symfony、PHPUnit、Doctrine などの主要なオープンソース プロジェクトをサポートするようになりました。手間をかけずに常に最新の PHP とフレームワークを使用したいですか?
Rector を使用して即時アップグレードを処理します。
必要なコード品質はあるものの、チーム内の新しい開発者と一緒にそれを維持するのに苦労していませんか?上級開発者全員が寝ているときでも、スマートなコードレビューを見たいですか?
Rector を CI に追加すると、コードが継続的にリファクタリングされ、コードの品質が高く保たれます。
自動リファクタリングを設定する方法については、ブログ投稿をお読みください。
composer require rector/rector --dev
Rector を使用するには主に 2 つの方法があります。
これらを使用するには、ルート ディレクトリにrector.php
を作成します。
vendor/bin/rector
そしてそれを変更します:
use Rector Config RectorConfig ;
use Rector TypeDeclaration Rector Property TypedPropertyFromStrictConstructorRector ;
return RectorConfig:: configure ()
// register single rule
-> withRules ([
TypedPropertyFromStrictConstructorRector::class
])
// here we can define, what prepared sets of rules will be applied
-> withPreparedSets (
deadCode: true ,
codeQuality: true
);
次に、Rector をドライランします。
vendor/bin/rector process src --dry-run
Rector は、変更されるファイルの差分を表示します。変更を加えるには、 --dry-run
をドロップします。
vendor/bin/rector process src
Rector が内部でどのように機能するか、独自のルールを作成してテストする方法、そして Rector が生まれた理由について興味はありますか? 「Rector - 自動リファクタリングの力」を読んで、Rector のセットアップと独自のルールの作成方法を段階的に説明します。
Rector コミュニティは、特定のプロジェクトの Rector セットを管理するアクティブなメンテナのおかげで強力です。
その中には次のプロジェクトが含まれます。
Rector は、私たちが無料で開発および共有しているツールなので、誰でもリファクタリングを自動化できます。しかし、誰もが自分の時間内に抽象構文ツリーの複雑さを理解するのに何十時間もかかるわけではありません。そのため、時間を節約するために商用サポートを提供しています。
コードベースに Rector を適用したいが、プロジェクトに取り組む時間がありませんか?より早く到着するために私たちを雇ってください。
コントリビューション ガイドを参照するか、開発リポジトリの rector/rector-src に移動してください。
--debug
オプションを使用すると、ネストされた例外出力が出力されます。
vendor/bin/rector process src/Controller --dry-run --debug
または Xdebug を使用して:
--xdebug
オプションを追加vendor/bin/rector process src/Controller --dry-run --xdebug
簡単なデバッグを支援するために、Rector は AST ノードを整形して表示するための 2 つのヘルパーを提供します。
use PhpParser Node Scalar String_ ;
$ node = new String_ ( ' hello world! ' );
// prints node to string, as PHP code displays it
print_node ( $ node );
Rector は、抽象構文ツリー(AST) と呼ばれるテクノロジーに基づいて構築された nikic/php-parser を使用します。 AST はスペースを認識しないため、ファイルに書き込まれると、PHP アノテーションと docblock アノテーションの両方で不適切な形式のコードが生成されます。
パラレル モードの Rector は、ほとんどの OS でほとんどの場合に機能します。 Windows では、トラブルシューティング パラレル ガイドに従っているにもかかわらず、解決できない問題が発生する場合があります。このような場合は、Powershell 7 (pwsh) を使用しているかどうかを確認してください。ターミナルをコマンド プロンプト (cmd) または Windows の bash に変更します。
プロジェクトにはコーディング標準ツールと一連の書式設定ルールが必要です。これにより、Rector の出力コードが再び美しく輝くようになります。
この設定では ECS を使用しています。
PHP + HTML コンテンツを含むファイルに変更を適用する場合、変更の適用後に変更されたファイルを手動で検証することが必要になる場合があります。