All notable changes to Symplify EasyCodingStandard (ECS) are documented here.
This log covers the last 10 releases (13.0.2 → 13.1.6). PR references #1–#15
belong to this repository (easy-coding-standard/ecs-src); higher numbers (#321–#329)
reference the original symplify/easy-coding-standard repository from before the split.
13.1.6 - 2026-06-09
- Bump dependencies and raise the minimum dev requirement to PHP 8.4; move to
entropy/entropyv3 for DI/console wiring (#15)
13.1.5 - 2026-05-30
- Add CI test covering the scoped PHPUnit namespace fix from #8 (#12)
13.1.4 - 2026-05-30
- Improve the deprecation message for
strict: true: it now tells you exactly where to removestrict: truefrom the->withPreparedSets(strict: true, ...)call inecs.php(#11) - Improve the deprecation message for the
STRICTset (#7)
13.1.3 - 2026-05-04
This release completes the move to the standalone easy-coding-standard/ecs-src repository.
- Scoped build: stop prefixing the lower-case
PHPUnit\Frameworknamespace on the scoped build (#5) - Scoped build: also strip the scoper prefix from
PHPUnit\RunnerandPHPUnit\Util(#6)
- Remove the
scriptscommand — out of scope for ECS (#1)
13.1.2 - 2026-05-04
- Drop a no-longer-needed entry from the linter build
13.1.1 - 2026-05-03
- Build/lock cleanup
13.1.0 - 2026-05-03
The main feature release of this window: gradual, step-by-step adoption levels and clearer guidance away from dangerous sets.
-
withSpacesLevel(int $level)— enable spacing rules incrementally, safest first, instead of flipping every spacing rule on at once. Level0turns on a single, safe rule; raise the level one PR at a time to grow coverage (#326)// ecs.php use Symplify\EasyCodingStandard\Config\ECSConfig; return ECSConfig::configure() ->withSpacesLevel(5);
-
withArraysLevel(),withControlStructuresLevel(), andwithDocblockLevel()— the same gradual, leveled adoption for the array, control-structure, and docblock rule sets. Each starts with pure cleanup rules and ramps up to more invasive layout changes (#327)// ecs.php use Symplify\EasyCodingStandard\Config\ECSConfig; return ECSConfig::configure() ->withArraysLevel(3) ->withControlStructuresLevel(2) ->withDocblockLevel(1);
Each level applies the same number of rules to your code, safest first:
-$values = array(1, 2, 3,); +$values = [1, 2, 3];
-
Reconfigure
OrderedImportsFixerto sort imports byclass,function, thenconst, avoiding a mixed import order (#321)use App\Service\SomeService; -use const PHP_EOL; use App\Service\AnotherService; -use function strlen; +use function strlen; +use const PHP_EOL;
// config/set/clean-code.php use PhpCsFixer\Fixer\Import\OrderedImportsFixer; use Symplify\EasyCodingStandard\Config\ECSConfig; return ECSConfig::configure() ->withConfiguredRule(OrderedImportsFixer::class, [ 'imports_order' => ['class', 'function', 'const'], ]);
-
Bump dependencies (#328)
-
The
STRICTset is now deprecated — it is dangerous to apply without context. Use Rector instead for safe, context-aware changes (#329) -
The
PHPUNITset is now deprecated — it never worked as intended (#329)// ecs.php — remove the deprecated flags return ECSConfig::configure() ->withPreparedSets( - strict: true, - phpunit: true, psr12: true, );
13.0.4 - 2026-01-05
- Update tool versions for the bare run
13.0.3 - 2026-01-05
- Lock
nette/utilsto avoid a breaking transitive update
13.0.2 - 2026-01-05
- Lock
nette/utilsto avoid a breaking transitive update