symplify/coding-standard
Symplify Coding Standard provides 23 fixer rules for clean, consistent PHP code, covering array formatting, line length, and strict types. It works best with Easy Coding Standard but is deprecated in favor of using ECS directly.
This is a developer-tooling decision, not a product-feature decision — it ships no runtime code, so its value shows up as engineering velocity, review quality, and static-analysis ROI rather than in the roadmap itself. The PM-relevant decisions it informs:
composer require plus ->withPreparedSets(symplify: true) gives an opinionated baseline for array formatting, method chaining, constructor parameter layout, and docblocks. This is a genuine "buy vs. build vs. tolerate inconsistency" call, where "build" means writing and maintaining custom fixer rules.@param/@var names, fixing name typos, reordering @param $x string → @param string $x, removing dead params. If the team's plan includes tightening Larastan levels, these rules mechanically clear a whole class of baseline noise before the human work starts. That is a measurable scope reduction on a technical-debt initiative.StandaloneLineConstructorParamFixer, StandaloneLinePromotedPropertyFixer, and StandaloneLineInMultilineArrayFixer are explicitly framed around easing git diffs when a new dependency is added. Direct benefit to teams with large PRs and parallel feature branches.RemovePHPStormAnnotationFixer and RemoveUselessDefaultCommentFixer strip IDE-generated scaffolding that reviewers waste cycles on; a consistent standard also shortens the "what style do we use here?" conversation for new hires.vendor/bin/ecs (dry-run) as a required check, --fix as a pre-commit or bot step — the standard becomes enforceable rather than aspirational.Reasonable to consider when:
symplify/easy-coding-standard) as its style runner. In that case this is the prepared set ECS now bundles — adopting it costs nothing extra.Look elsewhere when:
To executives (one paragraph): "There's a low-cost, low-risk engineering hygiene tool that mechanically cleans up code formatting and docblock annotations, which in turn makes our static-analysis investment cheaper and cuts reviewer time on style nits. It's free (MIT), installs as a dev-only dependency, and touches no production code. Two caveats: the underlying package is officially deprecated and archived, and our new Laravel projects should use Laravel's own Pint tool instead. So the recommendation is narrow: evaluate ECS's bundled version of this rule set on one legacy repo for a sprint, measure the diff volume and static-analysis baseline reduction, and decide. If results are good, we adopt the maintained path (ECS or PHP-CS-Fixer), not this package directly. If we can't get a maintained path, we fork the five or six rules that actually pay off rather than taking an unmaintained dependency."
To engineering: "A 23-rule fixer set covering array layout, method chaining, promoted properties/constructor params, strict-types spacing, and — most usefully — ten single-purpose docblock repair rules (missing param names, name typos, switched type/name order, dead @param lines, superfluous @var/@return names, PhpStorm junk). Each rule does one thing, is individually tested, and handles @phpstan-/@psalm- prefixed variants. It runs best under ECS via withPreparedSets(symplify: true), dry-run by default, --fix to apply. But: the repo is archived and the README tells you to use ECS instead — so the real proposal is 'adopt ECS's prepared set' or 'port the docblock fixers into our existing PHP-CS-Fixer/Pint config.' Spike it on one branch, read the diff, and check whether the fixers are reusable outside ECS before we commit to the toolchain."
How can I help you explore Laravel packages today?