mmstewart/laravel-x-ray
Laravel X-Ray is a lightweight development helper that gives you quick insight into what Laravel is doing behind a request, making it easier to debug behavior and spot performance issues without reaching for a full profiling stack.
11.x → 13.x). That output is the input to deciding whether an upgrade lands this quarter, and which workstreams (framework upgrade, dependency bumps, refactors) must be sequenced around it.--fail-on=error|warning|info turns the scanner from an advisory report into an enforceable gate. This shifts a product decision from "should we scan?" to "what severity do we block merges on?" — a policy choice with direct consequences for developer velocity versus regression risk.minimum_severity setting, the same tool can run strict in a pre-release branch and lenient on legacy maintenance branches. This supports differentiated quality bars across a product portfolio rather than one blanket rule.--format=json combined with threshold-based exit codes lets findings flow into existing observability or release-readiness dashboards without bespoke parsing.Adopt when:
--fail-on plus --format=json covers the common pipeline shapes out of the box.minimum_severity setting gives you a single knob to standardize.Look elsewhere or defer when:
--fail-on unset (the default is non-failing) until the team has agreed a threshold.For executives: This is a low-cost, low-risk addition that de-risks our Laravel upgrade work. It gives us a repeatable, evidence-based answer to "what breaks if we upgrade, and when can we ship it?" instead of relying on estimates. With the new release, the same check can run automatically on every pull request and block changes that introduce upgrade blockers — so upgrade cost gets paid down continuously rather than as a single disruptive project. Investment is limited to pipeline configuration; there is no new infrastructure or licensing to manage.
For engineering leadership: It's a single Artisan command producing severity-ranked findings in human-readable or JSON form. v1.5.0 adds --fail-on (error/warning/info) with matching exit codes, and honours the existing minimum_severity configuration, so we can gate CI without custom glue or wrapper scripts. Default behaviour is unchanged and non-failing — findings are advisory until we explicitly choose a threshold — which means we can pilot it on one repository, measure the false-positive rate, then promote it to a required check. Recommended next steps: run it once against the current codebase to size the findings, agree a threshold per branch (strict on main, lenient on maintenance branches), then wire it into CI and pipe the JSON output into our existing reporting.
How can I help you explore Laravel packages today?