リクタ付きPHP 7.4型宣言へのリファクタリング型注釈のリファクタリング
3759 ワード
問題
したがって、注釈を使用してタイプヒントを使用する古いPHPプロジェクトを持っており、これらの醜い注釈から良いインライン型宣言に移動したいと思います.
これから:
<?php
declare(strict_types=1);
class SomeClass
{
/**
* @var string
*/
private $someProperty;
}
これを:<?php
declare(strict_types=1);
class SomeClass
{
private string $someProperty;
}
確かに、手動でそれを行うことができますが、プロジェクトのサイズに応じて、これは1日から数週間にどこでもかかる可能性があります.解決策
まあ、心配しない、これはどこですRector 入る.Rectorは、“定義されたルールに基づいてコードの変更を行う”自動リファクタリングのためのツールです.そのうちの一つmany rules 自動的に型宣言を注釈からインライン宣言に移動させ、その規則をTypedPropertyRectorと呼びます.だから今ではどのようなrectorは、何のルールを使用して知っている、どのように我々はそれを使用しますか?
まず、作曲家を使用してrectorをインストールします
composer require rector/rector --dev
次に、initコマンドを使ってrectorを作成します.PHP設定ファイルvendor/bin/rector init
今私たちのユースケースに合わせて設定ファイルを変更するときです<?php
//rector.php
declare(strict_types=1);
use Rector\Php74\Rector\Property\TypedPropertyRector;
use Symfony\Component\DependencyInjection\Loader\Configurator\ContainerConfigurator;
return static function (ContainerConfigurator $containerConfigurator): void {
$services = $containerConfigurator->services();
$services->set(TypedPropertyRector::class);
};
最後に、rectorを実行してsrcディレクトリのファイルを処理することもできますvendor/bin/rector process src
または、事前にポップアップ表示される可能性のあるエラーをキャッチするために乾いた実行を行うvendor/bin/rector process src --dry-run
結論
Rectorは、あなたのコードの改善のすべての種類を行うと、他のPHPのバージョンに移行するときに作業の多くを自動化できるようになる素晴らしいツールです.また、自動化されたコードのリファクタリングや自動化されたコードのレビューのためのCIパイプラインの一部としてそれを使用することを検討するのも悪い考えではありません.
Reference
この問題について(リクタ付きPHP 7.4型宣言へのリファクタリング型注釈のリファクタリング), 我々は、より多くの情報をここで見つけました https://dev.to/bornfightcompany/refactoring-type-annotations-to-php-7-4-type-declarations-with-rector-50a4テキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol