Released ECS 13.3.0
News 🎉
Add NoBlankLineBetweenImportsFixer to the spaces set
Removes blank lines between consecutive import use statements, while keeping the blank line after the namespace intact. Ported from a custom fixer used in the Mautic codebase.
use App\First;
-
use App\Second;JSON output always reports absolute paths
JsonOutputFormatter now always reports absolute paths - the format machines consume (IDE links, CI ingestion) - so no toggle is needed.
Deprecated 💀
🧹 Fixer-first: deprecate the CI report formats
ECS is a fixer by default, not a static analyzer. The report formats that target CI static-analysis pipelines now emit a warning and fall back to console:
junit— ecsphp/ecs-src#69gitlab— ecsphp/ecs-src#71checkstyle— ecsphp/ecs-src#74
Remaining formatters: console and json.
Deprecate withRealPathReporting()
Kept as a deprecation warning pointing to --output-format json, now that JSON output always reports absolute paths.
Deprecate withEditorConfig()
.editorconfig discovery silently leaked project-wide settings into ECS, overriding the rules configured through sets. Coding standard should be driven by the ECS config. withEditorConfig() is kept as a deprecation warning; configure the matching PHP-CS-Fixer rules explicitly instead.
Deprecate withPhpCsFixerSets()
Prepared sets cover the same ground with a simpler API. withPhpCsFixerSets() is reduced to a deprecation no-op pointing to ->withPreparedSets() / ->withSets().
Removed 🗑️
Remove the deprecated symplify set
The symplify set was already a no-op loading zero rules; its rules live in the common sets. The symplify arg of withPreparedSets() and SetList::SYMPLIFY are removed - switch to ->withPreparedSets(common: true) or the matching with*Level() methods.
Remove dead code
- Remove the deprecated
phpunitandstrictset stub files - ecsphp/ecs-src#72 - Remove the dead
Option::ONLYconstant - ecsphp/ecs-src#73