Weave Code
Weaver
Helps Laravel developers discover, compare, and choose open-source packages. See popularity, security, maintainers, and scores at a glance to make better decisions.
Feedback
Share your thoughts, report bugs, or suggest improvements.
Subject
Message

Php Cs Fixer Config Laravel Package

lin3s/php-cs-fixer-config

Provides a reusable PHP-CS-Fixer configuration from Lin3s for enforcing consistent coding standards across PHP projects and packages. Add it as a development dependency and extend the preset to apply shared formatting and style rules with minimal setup, keeping codebases uniform and easier to mainta...

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Unchanged. lin3s/php-cs-fixer-config remains a thin configuration artifact: it wraps friendsofphp/php-cs-fixer and exposes a shared PhpCsFixer\Config object (presets + rule overrides) for downstream projects to consume as a require-dev dependency. It is "policy-as-code"—one canonical ruleset consumed across many repos—touching only developer tooling and CI, never runtime code. Integration surface is a Composer dev dependency plus a one-line include in .php-cs-fixer.dist.php. That still fits any standard PHP repo, monorepo, or polyrepo layout. The constraint remains organizational, not technical: value only materializes if you want LIN3S's opinionated ruleset.

Integration feasibility. Mechanically trivial, but viability is still unproven. The new v1.0.2 release does one thing: removes the self_accessor rule. That is a meaningful data point, because self_accessor was deprecated in PHP CS Fixer 2.x and removed entirely in PHP CS Fixer 3.0—dropping it is the single most common first step toward 3.x compatibility. However, the release notes disclose no accompanying change to the friendsofphp/php-cs-fixer version constraint, no PHP version requirement bump, and no compatibility statement. Removing one obsolete rule is necessary-but-not-sufficient for 3.x viability: rule renames, removed options, and Config API changes across the rest of the ruleset are untouched by this release. Treat the package as still "known-bad until proven otherwise" until the constraint in composer.json is inspected and the full rule list is validated against a 3.x install. Adoption cost remains near zero; viability cost is now marginally cheaper to determine but still unknown.

Technical risk. The three prior risks stand, with one adjustment. (1) Obsolescence — still an eight-year-old config against a fast-moving linter. v1.0.2 shaves one obsolete rule off the migration surface but does not modernize the ruleset. (2) Abandonment — 0 stars, 0 dependents, ~8 years between releases, then a single-rule commit. This is a maintenance pulse, not maintenance. A drive-by fix is a weak signal and should not be read as a commitment to track PHP CS Fixer or PHP releases going forward. (3) Signal risk — still zero dependents, so no real-world evidence the ruleset works on a modern stack. New, smaller risk: semver signal weakness. For a config package, changing the rule set changes lint output and therefore CI results. Removing a rule can silently loosen enforcement for a consumer relying on it; shipping that as a patch release (1.0.x) means a floating constraint will change your CI behavior without a version bump you'd notice. Low severity here (the rule is gone from 3.x anyway), but it confirms the package does not treat rule changes as significant versioning events.

Key questions. Does v1.0.2's composer.json now widen the friendsofphp/php-cs-fixer constraint beyond 2.x, or was only the rule removed? Does it run on PHP 8.1/8.2/8.3? Diff v1.0.1 → v1.0.2 to confirm the release note is complete (single-rule claim vs. actual changes to presets or Config construction). Are the remaining rules simply a preset bundle (@Symfony, @PSR2, etc.) plus a handful of overrides—i.e., how much is re-derivable from @PhpCsFixer/@PSR12? Does the org actually want LIN3S's style choices, or is this being evaluated as "a config package" generically? And still the decisive one: what is the cost to extract the rules array and maintain it first-party versus adopting a nominally-maintained-but-effectively-stalled dependency?

Integration Approach

Stack fit. Unchanged in substance. Appropriate only for PHP 7.x-era projects pinned to PHP CS Fixer 2.x. For modern PHP 8.x / PHP CS Fixer 3.x stacks it does not fit as a dependency, but fits well as a reference, since the ruleset definition is short and copyable. v1.0.2 makes the reference slightly cleaner to harvest (one fewer rule to drop) but does not change the fit verdict.

Migration path. Recommended path is unchanged: do not adopt the package; harvest the ruleset. Pull the rule definitions, translate 2.x-era rule names to 3.x equivalents, and vendor them into an internal org/coding-standards package or a shared .php-cs-fixer.dist.php baseline. This captures 100% of the value with 0% of the abandonment risk. v1.0.2 modestly reduces the translation work—self_accessor is already the correct 3.x-era omission, so you can copy the rule list post-v1.0.2 and skip that translation step. Do not read this as a green light to depend on the package verbatim.

Compatibility. Verify the PHP CS Fixer version constraint, PHP version constraint, and rule-name validity against the target major. v1.0.2 clears exactly one known incompatibility (self_accessor); assume the remainder is still unvalidated. Highest-probability residual failures: renamed fixers and removed deprecated options. Also verify whether v1.0.2 was tested at all—no CI badge, no dependents, and no compatibility statement in the notes suggests it was not.

Sequencing. (1) Inspect composer.json and the config class to identify the targeted PHP CS Fixer major and exact rule list. (2) Diff v1.0.1 → v1.0.2 to confirm scope. (3) Translate remaining rules to the target PHP CS Fixer version in a scratch project. (4) Run against one representative service to quantify diff volume and rule conflicts. (5) Promote to a first-party shared config package. (6) Roll out to CI across repos in waves, starting with non-blocking (--dry-run/report-only) mode. (7) Do not list lin3s/php-cs-fixer-config as a long-term dependency in any repo.

Operational Impact

Maintenance. Unchanged: adopting it transfers maintenance to us on day one. One commit after eight years does not create a maintenance relationship—it creates ambiguity about whether the package will be patched again. Every future PHP or PHP CS Fixer upgrade remains an unpatchable-dependency problem in practice. Owning a small internal config is still strictly lower operational burden.

Support. No upstream support function: no issue triage, no security response, no compatibility patches, no documented support policy. Internal support burden stays low if we vendor the rules and high if we depend on the package.

Scaling. Fine on the technical axis—dev-only tool, per-repo and per-CI-job, no runtime footprint, no service dependencies, negligible resource cost; scales to any number of repos by design. The scaling failure remains organizational: every consumer inherits the same dependency with unclear stewardship.

Failure modes. (a) CI breakage immediately after a PHP CS Fixer or PHP runtime upgrade. (b) Silent rule drift—fixers can be skipped with warnings rather than hard failures, so linting can appear green while enforcing less than intended; v1.0.2 is itself an instance of a rule disappearing from the effective policy, and it shipped without a compatibility note. (c) Composer resolution conflicts when a repo needs a newer PHP CS Fixer than the package allows—unresolved by this release unless the constraint moved. (d) False confidence: a passing CI signal that no longer reflects intended standards. (e) New: interpreting a patch release as evidence of active maintenance and deferring the first-party migration on that basis.

Ramp-up. Unchanged and very low. PHP CS Fixer is widely known; engineers are productive in under a day. The real cost is untangling version compatibility and re-deriving rules—hours to a day for a competent PHP engineer, not weeks. v1.0.2 trims that by a small increment only.

Recommendation. Unchanged: decline adoption as a dependency; treat it as a source of inspiration. v1.0.2 is a mildly positive signal—it removes a rule that PHP CS Fixer 3.x dropped anyway—but one single-rule commit after eight years, with no constraint bump, no PHP version statement, and no dependents, does not rehabilitate the package. Extract the ruleset from v1.0.2 (slightly easier now), migrate the remainder to a current PHP CS Fixer version, and maintain it as first-party configuration. Reassess only if the project publishes a release that explicitly moves to PHP CS Fixer 3.x with a stated PHP support matrix and demonstrates ongoing release cadence.

Weaver

How can I help you explore Laravel packages today?

Conversation history is not saved when not logged in.
Prompt
Add packages to context
No packages found.
adachsoft/changelog-linter
adachsoft/collection
payerurl/telegrambot-crypto-payment-instant-payout
dskripchenko/laravel-hybrid-search
riorizkyrainey/lara-ced
mehedimi/static-vel
zharp/zharp
nonsapiens/bigquery-model-sync
lgu-bayambang-ict-office/lgu-laravel-development-standards
andydefer/laravel-support
se7enxweb/flysystem
lampwick/laravel
jeslage/statamic-emojis
micahdshackelford/rmap-laravel
draftsmaninc/draftsman
square-bit/laravel-volition
himito/laravel-mailman
htinlynn/genius-helper
maco-studios/hephaestus
adachsoft/php-code-style