webproject-xyz/php-cs-fixer-config
A shared PHP-CS-Fixer configuration from webproject-xyz that gives PHP projects a consistent, opinionated coding style out of the box. Install it via Composer and extend the preset in your .php-cs-fixer config to enforce uniform formatting and rules across your codebase.
Package category: WebProject-xyz/php-cs-fixer-config is a developer-tooling package — a shared configuration preset for friendsofphp/php-cs-fixer. It ships rulesets, not runtime code. It should be installed as a require-dev dependency and never enter a production autoload path or deployed artifact.
Architecture fit: High for teams standardizing code style across multiple Laravel services. A shared config removes per-repo ruleset drift and makes CI style gates uniform. Fit is low if the org already standardizes on Pint, Laravel's first-party wrapper — running both creates two competing sources of truth and duplicate CI jobs. The decision to adopt this package is therefore an org-level policy decision, not a per-project one.
Integration feasibility: Straightforward. Add to require-dev, publish or reference the config from .php-cs-fixer.dist.php, wire a composer lint script and a CI step. No service container bindings, no config publishing into config/, no migrations. Typical effort is well under a day per repo once the pattern is established, mostly spent on the first-run diff volume.
Technical risk: Low, with two caveats. (1) Release 1.1.3 is a patch-level dependency bump plus a PHP version constraint change — constraint changes are the one class of change in this package that can actually break an install, since a raised floor silently excludes older runtimes from composer update. (2) Because the package pins its own php-cs-fixer range, a dependency bump can shift fixer behavior and produce a large, unrelated reformat diff in every consuming repo at once. That is a review-capacity risk, not a correctness risk.
Key questions:
php-cs-fixer major version does 1.1.3 resolve to, and does that change any rules we rely on?Version-specific note: the 1.1.3 changelog is a single "update and bump deps and php constraint" commit with no security advisory, no deprecation notice, and no public API change described. Treat it as a routine maintenance release that requires a constraint compatibility check before rollout, not a coordinated migration.
Stack fit: Native to Composer-based Laravel projects on PHP 8.x. No framework coupling, no service provider, no Laravel version constraint — which is a virtue: it will not block a Laravel upgrade. Works identically on Laravel 10/11/12 and on non-Laravel PHP services, which is useful if the estate is mixed.
Migration path: Incremental, three phases.
1.1.3), run the fixer, and inspect the diff to establish a realistic baseline of how much code churn the ruleset implies.git blame if the team accepts the one-time disruption.Compatibility: The blocking check is the PHP floor in 1.1.3 against every runtime in the support matrix. Verify by running composer why-not webproject-xyz/php-cs-fixer-config 1.1.3 and a composer update --dry-run in a representative repo before touching the lockfile. If any service still runs a PHP version below the new floor, it stays on 1.1.2 — which is a supported position for a dev-only tool, since the package does not ship to production.
Sequencing: Do the constraint check first, then the pilot, then the ratchet, then CI enforcement. Sequence the rollout behind any in-flight Laravel or PHP upgrades rather than alongside them — landing a repo-wide reformat in the middle of a framework upgrade makes both diffs unreviewable. Avoid scheduling this during a release freeze or end-of-quarter crunch.
Maintenance: Very low ongoing cost. The package is a pinned dev dependency updated on a normal cadence. Budget a recurring, small allowance per bump: update, run the fixer across repos, review the diff, merge. The 1.1.3 dependency bump is representative of the maintenance profile — routine, frequent, individually cheap.
Support: No vendor support; single-maintainer-style OSS project. That is acceptable for a lint config and unacceptable for anything on the request path — which this is not. Mitigation is cheap: the config is a thin ruleset, so if upstream goes dormant the team can fork or inline the rules in an afternoon. Document that fork path before adoption rather than after.
Scaling: Scales well. Cost is per-repository, not per-request; there is no runtime footprint, no memory or latency contribution, and no capacity planning implication. The only scaling pressure is human: a ruleset change fanning out to N repos creates N review cycles. Worth noting that the CI job runtime grows with codebase size, so on very large repos scope the fixer to changed files in PR checks and run the full sweep nightly.
Failure modes:
.git-blame-ignore-revs entry.Ramp-up: Negligible for developers — the tool is auto-fixing and IDE-integrated; most engineers need only know to run composer lint before pushing. The real ramp-up is on the platform/DevEx owner who maintains the shared config and shepherds bumps across repos. Recommend naming that owner explicitly, since an unowned shared config is the failure mode that turns a one-day setup into recurring friction.
Recommendation: Adopt as a require-dev standard, pinning exact versions. Verify the PHP floor introduced in 1.1.3 against the support matrix before rolling out, then proceed via pilot → ratchet → CI enforcement. Confirm the Pint-vs-php-cs-fixer decision at the org level first; that decision, not this release, determines whether the package delivers value.
How can I help you explore Laravel packages today?