Skip to content

Released ECS 13.2

Latest

Choose a tag to compare

@TomasVotruba TomasVotruba released this 11 Jun 10:49
· 3 commits to main since this release

The headline of this release: ECS is now a single package. The symplify/coding-standard fixers moved in-tree, and the Laravel container dependency is gone. No breaking changes for users — the Symplify\CodingStandard\Fixer\* class names are unchanged.


⬆️ How to upgrade

If you previously required symplify/coding-standard directly, drop it — it now ships inside ECS:

composer remove symplify/coding-standard --dev
composer require symplify/easy-coding-standard:^13.2 --dev

Your ecs.php needs no changes: the Symplify\CodingStandard\Fixer\* class names are unchanged. If you only ever required symplify/easy-coding-standard, a plain composer update symplify/easy-coding-standard is all you need.


🎯 Highlights


1. symplify/coding-standard merged into ECS (#19)

The 26 custom Symplify fixers ECS has always relied on now live directly in this repository under packages/coding-standard/. ECS could never run without them, and many prepared sets are tightly coupled to them — so maintaining two repos added friction for no benefit.

What this means for you:

  • One package instead of two. composer require symplify/easy-coding-standard --dev no longer pulls in a separate symplify/coding-standard.

  • Class names are unchanged — your existing ecs.php keeps working as-is:

    // ecs.php — still valid, no change needed
    use Symplify\EasyCodingStandard\Config\ECSConfig;
    use Symplify\CodingStandard\Fixer\LineLength\LineLengthFixer;
    
    return ECSConfig::configure()
        ->withRules([LineLengthFixer::class]);
        ->withPreparedSets(symplify: true);

2. withDocblockLevel() now goes much deeper (#19)

Because the Symplify commenting fixers now ship in-tree, the gradual docblock level gained 11 new rules (24 total). You opt in one level per PR, safest first:

// ecs.php
use Symplify\EasyCodingStandard\Config\ECSConfig;

return ECSConfig::configure()
    ->withDocblockLevel(5); // ramp up one level at a time

New rules now reachable through the level include inline @var normalization (DoubleAsteriskInlineVarFixer, SingleLineInlineVarDocBlockFixer, AddMissingVarNameFixer), @param fixes (AddMissingParamNameFixer, FixParamNameTypoFixer, RemoveParamNameReferenceFixer, RemoveDeadParamFixer), and superfluous-name removal (RemoveSuperfluousReturnNameFixer, RemoveSuperfluousVarNameFixer).


3. illuminate/container replaced with entropy/entropy (#17)

ECS's DI container no longer extends Illuminate's. ECSConfig now extends Entropy\Container\Container.

What this means for you:

  • One less dependency in your install tree — illuminate/container and its bundled patch (patches/illuminate-container-container-php.patch) are gone.
  • Checker registration order and the documented duplicate-in-set behavior are preserved.
  • symfony/console stays — it's still a transitive dependency of PHP-CS-Fixer and easy-parallel, so it can't be dropped.

This is an internal change. If you only use the public ECSConfig::configure()->with...() API, nothing changes for you.