Skip to content

Instantly share code, notes, and snippets.

@webrgp
Last active December 9, 2024 20:42
Show Gist options
  • Save webrgp/dadcb88ac302389aee4c55ff0763712d to your computer and use it in GitHub Desktop.
Save webrgp/dadcb88ac302389aee4c55ff0763712d to your computer and use it in GitHub Desktop.
ECS Configuration for Craft

ECS Configuration for Craft

To utilize the latest ECS features in Craft CMS, such as parallel processing, you must replace craftcms/ecs with this:

composer remove craftcms/ecs
composer require symplify/easy-coding-standard:^12.4 —dev

The attached ecs.php file is configured to align with the Craft CMS coding standards.

<?php
declare(strict_types=1);
use PhpCsFixer\Fixer\ClassNotation\VisibilityRequiredFixer;
use PhpCsFixer\Fixer\ControlStructure\TrailingCommaInMultilineFixer;
use PhpCsFixer\Fixer\FunctionNotation\FunctionDeclarationFixer;
use PhpCsFixer\Fixer\FunctionNotation\MethodArgumentSpaceFixer;
use PhpCsFixer\Fixer\Import\NoUnusedImportsFixer;
use Symplify\EasyCodingStandard\Config\ECSConfig;
use Symplify\EasyCodingStandard\ValueObject\Set\SetList;
return ECSConfig::configure()
->withPaths([
__DIR__ . '/modules',
__DIR__ . '/plugins',
])
->withRootFiles()
->withSets([
SetList::PSR_12,
])
->withRules([
NoUnusedImportsFixer::class,
])
->withConfiguredRule(VisibilityRequiredFixer::class, ['elements' => ['const', 'method', 'property']])
->withConfiguredRule(FunctionDeclarationFixer::class, ['closure_function_spacing' => FunctionDeclarationFixer::SPACING_NONE])
->withConfiguredRule(TrailingCommaInMultilineFixer::class, ['elements' => [
TrailingCommaInMultilineFixer::ELEMENTS_ARRAYS,
TrailingCommaInMultilineFixer::ELEMENTS_PARAMETERS,
]])
->withSkip([
MethodArgumentSpaceFixer::class,
])
;
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment