依存関係のある任意の 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 フィクサー。