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 --devYour 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 --devno longer pulls in a separatesymplify/coding-standard. -
Class names are unchanged — your existing
ecs.phpkeeps 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 timeNew 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/containerand its bundled patch (patches/illuminate-container-container-php.patch) are gone. - Checker registration order and the documented duplicate-in-set behavior are preserved.
symfony/consolestays — 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.