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 Coding Standards Laravel Package

genealabs/php-coding-standards

A ready-made set of PHP coding standards from GeneaLabs for Laravel and general PHP projects. Drop-in configuration helps enforce consistent style, simplify linting, and keep your codebase clean, uniform, and easy to maintain across teams.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. This is developer tooling, not runtime code. It sits in the require-dev layer next to Laravel Pint, PHP-CS-Fixer, and PHP_CodeSniffer, and its only job is to centralize an opinionated, Laravel-leaning style ruleset so repositories stop hand-rolling configuration. That is the right architectural shape for a low-risk trial: near-zero production blast radius, cheap to adopt, cheap to abandon, and it feeds two decisions a TPM typically already owns — the coding-standards/code-review policy and where the lint gate lives in the CI pipeline (pre-commit vs. CI vs. both). The one architectural trap is that adopting the package implicitly adopts the underlying engine and its version constraints, so it must not become the backdoor by which the team's linting toolchain gets selected. The package is a PHP_CodeSniffer ruleset by definition — that already narrows the engine choice, and the team may have standardized on Pint.

Integration feasibility. Mechanically trivial (Composer install plus a phpcs.xml that refs the shipped standard) but feasibility is gated on validation, not effort. The 0.2.0 release bumped Slevomat coding standards to v7, which dates the toolchain and implies a specific PHP_CodeSniffer generation and a PHP version ceiling against today's matrix. The real spike — a day for one engineer — must answer: does it ship a ruleset.xml/phpcs.xml or custom sniffs in src/? Can we reference it by relative path rather than registering it by name via installed_paths (a machine-local trap)? Does it resolve cleanly in a fresh Composer project? Feasible: yes. Proven: no.

Technical risk. High relative to maturity, medium relative to impact. Every adoption signal is weak — 16 stars, 0 dependents, no release since 2021-11-18, and the one documented 0.2.0 change was itself an upstream dependency bump. That is effectively unmaintained upstream. The dominant risks are compatibility drift (a 2021-vintage ruleset producing deprecation noise and stale sniffs against modern PHP/Laravel) and false confidence (a green CI run that no longer reflects current conventions — worse than no gate, because it launders the appearance of compliance). Neither threatens production; both cost developer time and review credibility. Mitigation is structural: treat the durable artifact as the rules, not the package. Score 0.914 should not be read as endorsement — the opportunity signal (18.38) is the honest read on differentiated value.

Key questions.

  • Which engine and version does it target, and what PHP/Laravel versions does that allow today?
  • What is our current Pint/PHP_CodeSniffer baseline, and how much of this ruleset duplicates or conflicts with it?
  • Who owns the ruleset internally if upstream stays inactive, and what is our fork-and-patch policy?
  • Does the license permit internal forking and cross-repository redistribution?
  • What is the exit criterion for the pilot — N accepted rules, or a clean report-only run on a representative repo?
  • Is there any reason to align with the GeneaLabs/Mike Bronner ecosystem, or is this purely a reference input?

Integration Approach

Stack fit. Good only where Composer and an existing PHP linting stage already exist and the team is prepared to own a ruleset. Poor as a first linting tool — adopting it drags the toolchain decision along. Best positioned as a reference standard feeding an internal standards package, or as an optional dev dependency in a single pilot repository. Explicit non-fit for teams already standardized on Laravel Pint, and for organizations requiring vendor support, release cadence, or security-review evidence for dependencies.

Migration path. Do not replace existing standards. Sequence: audit current Pint/PHP_CodeSniffer/PHP-CS-Fixer usage → inspect what the package actually ships → diff its rules against the internal baseline → extract the rules we want into an internal config or fork → run report-only on a pilot repository → enforce incrementally with a baseline so CI fails only on new violations. Where rules fight Laravel conventions, downgrade severity or exclude per-rule rather than disabling wholesale. Keep formatting ownership with a single tool so two linters do not oscillate on the same lines — that failure mode is guaranteed if Pint and phpcbf both run with overlapping fixers.

Compatibility. Treat as unproven until validated in a disposable repository. Pin both the package and the engine, test against the team's PHP/Laravel version matrix, and confirm clean resolution in a fresh project. Reference the ruleset by relative path, not by registered name, and verify path resolution works from the project root and from the editor/IDE. If any of that fails, vendor the rules internally rather than pinning something we cannot upgrade.

Sequencing.

  1. Sandbox spike: confirm engine, PHP support ceiling, rule inventory, license terms.
  2. Decision checkpoint: adopt as dependency, fork, or borrow rules only.
  3. If forking: assign an internal owner; place rules in a shared standards package.
  4. Pilot in one low-risk repository, report-only, excluding vendor, storage, bootstrap/cache, and migrations.
  5. Publish baseline metrics; add a non-blocking checkstyle report to CI.
  6. Flip to blocking only after false-positive triage and a communicated grace period.

Operational Impact

Maintenance. Assume we own it. A 2021 last release with zero dependents will not track PHP or Laravel tooling. Budget a named owner and a small recurring allowance for ruleset upkeep — or copy the configuration into our own package and stop tracking upstream entirely. This is a "maintain or internalize" decision, not a "consume" decision; internalizing makes the vendor risk disappear along with the dependency.

Support. Effectively none. No community backlog, no timely compatibility patching, no broad troubleshooting corpus. The escalation path is internal engineering, which means the knowledge must be documented or the standard becomes tribal knowledge. Flag this explicitly in any vendor-risk review rather than assuming open-source goodwill covers it.

Scaling. Runtime scaling is a non-issue for a dev-only tool; organizational scaling is the constraint. Rolling out repo-by-repo creates per-repo version pinning, upgrade coordination overhead, and config drift. Centralize the chosen rules in one internal package plus a shared CI template so a single change propagates. If we borrow rules instead of depending on the package, scaling cost is essentially identical to scaling any internal lint config — which is the argument for borrowing.

Failure modes. CI breakage after PHP or engine upgrades; deprecation warnings and false positives from stale sniffs; Composer conflicts from pinned older tooling; developers bypassing the gate with --no-verify; rule drift across repositories that copied the config; and an orphaned dependency after the champion leaves. All are contained to the development workflow — state that to stakeholders so the risk is neither over-weighted against production concerns nor dismissed because it looks small.

Ramp-up. Low for engineers fluent in Composer and CI linting — roughly an afternoon to a first useful report. The genuine cost sits with the TPM and platform team: running the compatibility spike, making the adopt/fork/borrow call, socializing the standard, and managing the transition to blocking enforcement. Given the adoption and maintenance signals, the recommended leverage is to harvest the ruleset thinking as a one-time input to an internally owned Pint/PHP_CodeSniffer standard, and defer any hard dependency to a forked, owned artifact with a documented exit path. One-line recommendation: borrow the rules, not the dependency.

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.
jinas/dhivatar
store-doc/laravel-storage-driver
plus-it/laravel-translation-manager
diephp/perhaps
diephp/telegraph
osmaviation/spreadsheet
microsoft/fluentui-system-icons
mmccook/php-json-canonicalization-scheme
middlewares/firewall
qubiqx/montapacking
nyoncode/laravel-package-console
pnscripts/filament-broadquill-lite
pnscripts/laravel-sentfold-lite
vleap/mx-sdk-laravel-internal
twidpay/utils
htetmyathlaing/scout-elasticsearch-driver
artisan-toolbox/front-awesome
ls/client-assistant
users-au/laravel-client
cgv/localized-resource