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

Laravel Tracer Laravel Package

protonemedia/laravel-tracer

Laravel Tracer wraps every rendered Blade view in HTML comments showing that view's path, so you can inspect the page source in your browser and instantly find the template responsible for any markup. A small, handy debugging aid for apps with deeply nested views.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit Unchanged. protonemedia/laravel-tracer remains a narrow, additive package: it hooks Eloquent model events and records the origin of each change (calling file/line, stack, payload snapshot) into a database table, typically via a trait on selected models. It is an observability/debugging aid, not an audit-log product — no actor identity, no retention policy, no immutability, no tamper resistance. It fits only as a development/staging diagnostic inside an existing Laravel application, for a small, explicitly enumerated set of models. It is not a system of record.

Integration feasibility The v0.3.3 release (PHP 8.1 + L9) materially improves one input and leaves the rest untouched. It confirms the constraint ceiling is PHP 8.1 / Laravel 9 — better than the 2022-era floor we assumed, and it means a clean Composer install against an L9 app on PHP 8.1 is now the expected case rather than a coin flip. It does not, however, change the metadata that drove the original verdict: still archived upstream, still 4 stars / 0 dependents, still no maintainer, and now a declared ceiling one major version behind current Laravel. Note the release is numbered as a patch (0.3.3) while changing framework constraints — for anyone on Laravel 8 this may be a silent drop of support. Treat it as potentially breaking until the constraint diff is read in composer.json.

Technical risk Still high, and the release does not touch the risk concentration, which is ownership rather than code:

  • Archived = no security response, no bug fixes, no forward compatibility. v0.3.3 lands us on a stack (L9 / PHP 8.1) that is itself on a deprecation clock, so the upgrade debt is deferred, not avoided.
  • Schema ownership. The published migration puts a traces-style table in our database; we own it, its indexes, and its data lifecycle permanently.
  • Write-path coupling. Tracing runs inside model event listeners. Whether it is fail-open or fail-closed remains the single most important thing to verify before any production consideration — the release notes say nothing about it.
  • Data protection. Snapshot capture into a queryable table can pull PII into an ungoverned store; still a compliance finding waiting to happen.
  • Semver hygiene. A patch-level constraint change suggests loose release discipline, which lowers confidence that future breakage gets signalled.

Key questions

  1. Is tracing fail-open (swallow errors) or fail-closed (breaks the model write)?
  2. What are the exact PHP and illuminate/* constraints? Partially answered: PHP 8.1 + Laravel 9. Remaining: does it drop Laravel 8, or widen to include it? Can constraints be loosened to L10/11 without code changes, and has anyone actually run it there?
  3. Which attributes are persisted, and can we redact/exclude sensitive columns?
  4. Does it behave correctly under queue workers, console commands, and scheduled jobs where there is no HTTP request context?
  5. What is the per-event row size and write amplification on our highest-traffic tracked model?
  6. Can we get 80% of the value from tools we already run (Telescope, Pulse, a hand-rolled observer, or spatie/laravel-activitylog)?

Integration Approach

Stack fit Narrower and clearer than before: this package now targets Laravel 9 on PHP 8.1. If our estate is on L9/PHP 8.1, the compatibility spike is largely de-risked and only the behavioural questions remain. If we are on Laravel 10/11 or PHP 8.2/8.3 — the more likely case for new work — the package is still an unverified dependency and the earlier conclusion stands unchanged.

Migration path Do not adopt upstream as a long-lived dependency. Preference order is unchanged:

  1. Reimplement (~1–2 engineer-days). A model observer, a debug_backtrace() capture, and a table with a retention job. Small, well-understood, and we own the failure semantics (fail-open, sampling, redaction) from day one.
  2. Internal fork. Now slightly more attractive: v0.3.3 gives us a known-good L9 baseline to fork from rather than a 2022 unknown. Still converts a dependency into a maintained internal product with a real owner.
  3. Maintained alternative. Telescope/Pulse for development diagnostics; an audit package or in-house event log for anything production-facing.

Compatibility Resolved for L9/PHP 8.1; unresolved for everything newer. Before writing code: run an install against our actual composer.lock on the target branch, and read the composer.json diff between 0.3.x and 0.3.3 to confirm whether Laravel 8 support was removed. A clean install plus a passing test matrix is the gate; anything short is a stop signal.

Sequencing

  1. Diff the 0.3.3 constraints; confirm L8 support status and whether L10/11 is a one-line loosen or a real port.
  2. Compatibility spike on a throwaway branch against our current Laravel/PHP.
  3. Verify publish/install, trait application, and the fail-open/fail-closed behaviour explicitly.
  4. Instrument one low-risk model and measure row size, event volume, write amplification.
  5. Decide fork vs. reimplement on that data — not on the README.
  6. If proceeding, restrict to non-production behind an env flag, and document an exit path.

Operational Impact

Maintenance Still the dominant cost and unchanged by this release. Archived upstream means we inherit the package the moment we ship it. v0.3.3 buys us time on L9/PHP 8.1 but does not create a maintainer; the L10/L11 and PHP 8.2+ work is ours whenever we get there. Assign an explicit owner or do not adopt.

Support No vendor, no SLA, no security advisories, effectively no community (4 stars, 0 dependents). The terse release note — five words and a version bump — is itself evidence of how little triage signal we should expect. Internal documentation is mandatory.

Scaling Unchanged. Every tracked model event writes a row with serialized payload and stack trace: significant write amplification on hot tables and unbounded growth without a TTL. Production use requires a retention job, an index review, and probably sampling. Queueing the write relieves latency but can stale the trace context and changes failure semantics.

Failure modes

  • Trace write failure surfacing as a business-write failure (worst case; verify first).
  • Oversized or unserializable payloads erroring on models with long-text, JSON, or binary attributes.
  • PII silently accumulating in a table with no access controls or retention.
  • Orphaned rows after model deletion if polymorphic cleanup is unhandled.
  • Breakage on the next PHP or Laravel minor upgrade, discovered in production because there is no upstream test matrix.
  • New: a silent support drop for Laravel 8 delivered in a patch version, if the constraint change was a replacement rather than a widening.

Ramp-up Learning the API is a non-issue — small, forgiving surface. The real ramp-up is organizational: absorbing a fork, writing the runbook, and teaching the team that this is a debugging tool confined to non-production or a short-lived investigation.

Bottom line: v0.3.3 is a compatibility refresh, not a revival — it confirms Laravel 9 / PHP 8.1 and answers our constraint question, but leaves archived status, fail-open behaviour, redaction, retention, and forward compatibility exactly as they were. If we are on L9/PHP 8.1 and need a quick diagnostic, this is now a lower-friction time-boxed experiment; for anything newer, nothing has changed. Treat it as a reference implementation, not a dependency — the code is small enough to reimplement in a couple of days with better failure semantics, redaction, and retention than an archived package will ever get. If we do adopt it, cap the commitment to a time-boxed debugging effort behind an env flag with a documented removal date, and keep it off the production write path.

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.
3mdikram/worldmoneywords
snowsoft/config
itmosoft/laravel-subscriptions
larva/laravel-ai-qwen
diephp/sequences
users-au/socialite-provider
twidpay/twid-logger
mrnewport/laravel-plaid
mrnewport/laravel-repo
mrnewport/laravel-docsign
mrnewport/laravel-stow
mrnewport/laravel-flow
mrnewport/laravel-priceable
mrnewport/laravel-nestedterms
fredmeng/laravel-apidoc-generator
itstructure/laravel-multilingual-tools
pdustdar/elasticsearch
markupai/php-sdk
rlacerda83/lumem-microservice-shipment
uni-method/symfony-lib