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

Eloquent Dumper Laravel Package

recca0120/eloquent-dumper

Eloquent Dumper adds dump() and dd() helpers to Laravel's Eloquent query builder so you can instantly inspect the generated SQL with its bindings while debugging. No query log setup needed—just chain it onto any query. Works with Eloquent models and the query builder.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit. Dev-only and additive. The package decorates Laravel's Eloquent/Query Builder — most likely by registering a macro on Illuminate\Database\Eloquent\Builder / Illuminate\Database\Query\Builder from a service provider, so it plugs into a sanctioned framework extension point rather than patching core. No migrations, no middleware, no overridden framework contracts. Verify it uses Laravel package auto-discovery and that the provider is inert when the package isn't installed.

Integration feasibility. Trivial: composer require --dev. Nothing to publish, no credentials, no env changes, no schema. The one thing to confirm is whether the provider registers unconditionally — i.e., whether composer install --no-dev plus a discovery cache genuinely removes it from a production build. Trial in one service is an afternoon, not a sprint.

Technical risk. Low, but three concrete risks: (1) Data exposure — bindings are raw parameter values, so a dump fired inside a production request can leak PII into an HTTP response or the log aggregator; (2) Macro collision with existing tooling that also decorates the query builder (Debugbar, Telescope, Clockwork), producing confusing or duplicated output; (3) Bus factor — 29 stars, single maintainer, no release notes for the 2024-03-12 release, so change impact is unverifiable. None of these are disqualifying for a local debugging aid; all are disqualifying for anything on the production request path. Practical upgrade blocker is the illuminate/* constraint range.

Key questions.

  • Which Laravel and PHP versions are in the require block, and is there a CI matrix?
  • Does it register a global macro (name and collision surface) or an opt-in facade?
  • Does output go through dd()/dump() (symfony/var-dumper), and can it be redirected to a log channel instead of the response body?
  • Is there a hard guard against dumping when APP_ENV=production / APP_DEBUG=false?
  • What changed between the last release and HEAD — is there a changelog at all?
  • Are there open issues about inaccurate binding interpolation for our DB engine (Postgres casts, JSON columns)?
  • MIT confirmed — any attribution constraint on an internal fork?

Integration Approach

Stack fit. Framework-native with no runtime assumptions beyond the query builder: no Redis, no queue driver, no cache backend, no tenancy model, no auth coupling. It works anywhere we already run Laravel, which is the entire fleet. Database-engine sensitivity is limited to how bindings are interpolated into the SQL string — worth a spot check on Postgres if that's our primary engine.

Migration path. Add to require-dev in one service, run composer update recca0120/eloquent-dumper, confirm auto-discovery, then exercise it against one genuinely painful query (relationship + local scope + conditional chain) to validate the output correctness. Nothing is persisted, so there is no reverse migration; rollback is composer remove --dev.

Compatibility. Run the composer resolution check before anything else — the realistic failure is an indirect conflict with an already-pinned illuminate/* or symfony/var-dumper version in our lockfile. Then check macro-name collisions against Debugbar/Telescope in the same app and pick one canonical tool per team to avoid divergent output. Confirm the provider doesn't bind container keys we already own.

Sequencing. (1) Composer resolution and macro-collision check in a branch; (2) read the source — it's small — and close the changelog gap; (3) adopt in one service's dev environment; (4) add a build/CI assertion that the package is absent from the production artifact; (5) document it in the engineering wiki as the sanctioned "why is this query wrong" tool with the PII caveat; (6) let adoption spread organically. Do not spend a formal spike on this — the cost/benefit doesn't justify it.

Operational Impact

Maintenance. Effectively zero when correctly scoped to require-dev. Assign it to the platform/dev-experience owner as a line item in the dev-tooling inventory, reviewed at each Laravel major upgrade. Expect it to break on majors; the remediation is removal, not patching.

Support. Single maintainer, low visibility, MIT, no commercial backing. Assume no upstream security response. That is acceptable precisely because the blast radius is a developer's local console. Keep a fork contingency in the back pocket — the functionality is small enough (SQL interpolation with bindings) to reimplement internally in a day if upstream goes dormant.

Scaling. No production runtime footprint, so horizontal scaling is a non-issue. The only scaling concern is team-wide noise: many engineers dumping into a shared staging response stream. Standardize on log-channel output rather than response-body dumps.

Failure modes.

  • Leak into the production artifact — the one that matters. Mitigate with a CI assertion that the package isn't in the built vendor tree and a review check that no dump macro is reached under APP_ENV=production.
  • PII in dumped bindings — raw values land in terminal scrollback, screenshots, and tickets. Bake a "scrub before sharing" instruction into the wiki page.
  • Macro collision — silent; manifests as duplicated or malformed output. Test alongside existing debug tooling during the trial.
  • Laravel major upgrade — version pins block composer update. Treat as a scheduled removal, not an incident.
  • Misreading the output — it renders the builder's SQL, not the database's execution plan. Engineers must not use it as a performance tool; state that explicitly in the docs.

Ramp-up. Under an hour per engineer to first useful output, and near-zero org-level onboarding because ->toSql()-style inspection is already a familiar reflex. Documentation is thin, so budget a short internal README covering the sanctioned usage pattern and the PII caveat. Recommendation: approve as dev-only tooling, conditional on the production-artifact guard and the PII guidance. Do not approve for any code path that executes in production.

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.
shitoudev/permissionmanager
johannesclimacus/laravel-tui
hocvt/seotools
vitalybaev/sypexgeo
amphibee/themosis-ignition
gito-me/fast-excel
frankyso/laravel-ipaymu
geolize-studio/laravel-chile
boomerangui/chat
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