依存関係のある任意の PHP 7.2 ~ PHP 8.3プロジェクトにインストールします
箱から出してすぐに並行走行が可能で非常に高速
PHP_CodeSniffer または PHP-CS-Fixer など、お好きなものを使用してください
準備済みセットと PHP CS Fixer セットを使用して時間を節約する
コンポーザーには symplify/easy-coding-standard --dev が必要です
ベンダー/bin/ecs
最初の実行時に、ECS はディレクトリとキックオフする最初のルールを含むecs.php
構成ファイルを作成します。
その後、再度実行して、提案された差分を確認できます。
ベンダー/bin/ecs
実際にコードを修正するには、 --fix
を追加します。
ベンダー/bin/ecs --fix
それでおしまい!
ほとんどの場合、デフォルトの構成で問題ありません。最も関連する部分は、パス、チェッカー、セットの構成です。
PhpCsFixerFixerArrayNotationArraySyntaxFixer を使用する;PhpCsFixerFixerListNotationListSyntaxFixer を使用する;SymplifyEasyCodingStandardConfigECSConfig を使用する;return ECSConfig::configure() ->withPaths([__DIR__ . '/src', __DIR__ . '/tests']) ->withConfiguredRule( ArraySyntaxFixer::クラス、 ['構文' => '長い'] ) ->withRules([ ListSyntaxFixer::クラス、 ]) ->withPreparedSets(psr12: true);
ルート内のすべての*.php
ファイル ( ecs.php
、 rector.php
など) をチェックしますか?それらを 1 つずつリストする代わりに、 ->withRootFiles()
メソッドを使用します。
SymplifyEasyCodingStandardConfigECSConfig を使用します;return ECSConfig::configure() ->withPaths([__DIR__ . '/src', __DIR__ . '/tests']) ->withRootFiles();
php-cs-fixer の 44 セットのうちの 1 つを含めますか?
あなたはできる:
SymplifyEasyCodingStandardConfigECSConfig を使用します;return ECSConfig::configure() ->withPaths([__DIR__ . '/src', __DIR__ . '/tests']) ->withPhpCsFixerSets(perCS20: true, doctrineAnnotation: true);
一連のルールは気に入っていますが、単一のルールやいくつかのファイルをスキップしたいですか?
SymplifyEasyCodingStandardConfigECSConfig を使用します;return ECSConfig::configure() ->withSkip([// 単一のルールをスキップArraySyntaxFixer::class,// 特定のパスの単一ルールをスキップArraySyntaxFixer::class => [__DIR__ . '/src/ValueObject/', ],// 絶対値または * Mask__DIR__ によってディレクトリをスキップします。 '/src/Migrations',// ディレクトリをマスク__DIR__ でスキップします。 '/src/*/レガシー', ]);
おそらくこれらを使用することはありませんが、内部プロセスをより詳細に制御できるようになります。
use SymplifyEasyCodingStandardConfigECSConfig;use SymplifyEasyCodingStandardValueObjectOption;return ECSConfig::configure()// スキャンするファイル拡張子->withFileExtensions(['php'])// キャッシュ パスと名前空間を構成します - 有用な例: Gitlab CI キャッシュ、getcwd() は常に異なるものを生成しますパス->withCache( ディレクトリ: sys_get_temp_dir() 。 '/_changed_files_detector_tests', namespace: getcwd() // ディレクトリ区切り文字に正規化されます)// 特定のインデント規則でコンテンツを出力します->withSpacing(indentation: Option::INDENTATION_SPACES, lineEnding: PHP_EOL)// 並列実行を変更します->withParallel(timeoutSeconds: 120, maxNumberOfProcess: 32、ジョブサイズ: 20);
記載されている値はデフォルト値です。
さまざまなプロジェクトにわたって ECS を使用していますか?これらの各プロジェクトで常に同じ方法で実行したいですか? Composer スクリプトを活用してみよう
このコマンドは、 composer.json
に 2 つの便利なスクリプトを追加します。
ベンダー/bin/ecs スクリプト
常に同じ方法で実行して、コードを確認します。
作曲家チェック-CS
修正を適用するには、次を実行します。
作曲家修正-CS
ECS を使用して、サードパーティ ツール用のレポートを生成することもできます。
現在、次のフォーマッタを提供しています。
console
: PHP CS Fixer による人間指向の印刷。
json
: 任意のツール用のカスタム JSON BLOB。
junit
: さまざまな CI 環境で使用される JUnit 形式。
checkstyle
: Github アクション レポートに役立ちます。
gitlab
: Gitlab コード品質レポートまたは Code Climate ツール用。
これらのそれぞれがどのように動作するかについては、それぞれの実装を参照してください。
ベンダー/bin/ecs --clear-cache
ベンダー/bin/ecs リストチェッカー
json形式を探していますか?
ベンダー/bin/ecs list-checkers --output-format json
別のツールを使用していて移行したいですか?それは非常に簡単です。「方法」は次のとおりです。
PHP_CodeSniffer 用
PHP CS フィクサー。