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 Event Visualizer Laravel Package

jonaspardon/laravel-event-visualizer

Laravel Event Visualizer maps your app's events, listeners, and dispatch chains into an interactive graph, helping you understand event-driven flow, spot missing or duplicate listeners, and debug complex Laravel event architecture quickly.

View on GitHub
Deep Wiki
Context7

Technical Evaluation

Architecture fit jonaspardon/laravel-event-visualizer is a development-time introspection tool for Laravel applications: it inspects the framework's event dispatcher and renders the event → listener graph as a visual map. It fits any Laravel codebase that leans on events for domain decoupling (modular monoliths, domain-event-driven services, package-heavy apps) and is irrelevant for apps with trivial or no event usage. It is a service-provider package with auto-discovery — no runtime coupling, no production traffic path, no database schema.

Integration feasibility Installation is a single composer require --dev plus optional asset/config publishing. v0.4.4's only change is added Laravel 11 support (pieterclaerhout, PR #29) — a constraint widening, not a feature or refactor. This removes the primary blocker for teams on Laravel 11 and, by implication, the new bootstrap/app.php application skeleton. Feasibility is high; effort is measured in hours, not sprints.

Technical risk

  • Pre-1.0 versioning (v0.4.x): semver gives no guarantee that 0.5.0 or 1.0.0 won't break config keys, routes, or command signatures. Pin exactly and review changelogs on every bump.
  • Single-maintainer OSS: bus factor of one, no vendor SLA, no security-response process. Acceptable for a dev-only tool; not acceptable if any team starts depending on it in CI as a gate.
  • Introspection fidelity: visualizers of this class typically reflect registered listeners at dispatch time. Closure listeners, wildcard listeners, listeners registered dynamically by third-party packages, and events dispatched through non-standard dispatchers may render incompletely or misleadingly. Verify against your actual event topology before treating a graph as authoritative documentation.
  • Graph legibility at scale: large applications (100+ events) can produce graphs that are technically correct but useless as communication artifacts.
  • Exposure surface: the package registers a route to serve its UI. If that route is not gated to local/development, it becomes an information-disclosure path enumerating internal architecture. This is a configuration review item, not a defect.
  • Laravel 11 verification gap: "supports Laravel 11" in release notes should be confirmed against your exact minor version, PHP version (8.2/8.3), and whether your app uses a customized dispatcher.

Key questions

  1. Does the Laravel 11 support extend to laravel/framework ^11 constraints in composer.json, and what is the tested CI matrix (PHP 8.2 / 8.3)?
  2. Are closure and wildcard listeners resolved in the rendered output, or silently omitted?
  3. Is the visualization route registered unconditionally, or is it environment-gated by default?
  4. What are the memory/time characteristics against an app with several hundred listeners?
  5. Does it emit any telemetry or make outbound network calls?
  6. License terms and maintainer responsiveness on the issue tracker?

Integration Approach

Stack fit Laravel 9/10/11 with PHP 8.1+. Laravel-only — no Lumen, no Symfony standalone, no non-PHP services. Should live in require-dev exclusively; any appearance in require is a red flag in code review.

Migration path 0.4.3 → 0.4.4 is additive: a loosened framework constraint. No config migration, no asset re-publish, no code changes expected. Teams already on 0.4.3 can bump with a lockfile diff and a smoke run of the command; teams blocked on Laravel 11 can now adopt.

Compatibility Confirm three axes before rollout: framework constraint vs. your pinned laravel/framework, PHP version, and any in-house packages that register listeners programmatically (these are the most likely source of incomplete output). Also confirm interaction with event:cache/discovery workflows if you use event discovery.

Sequencing

  1. Branch-level pilot: install as a dev dependency, run against one representative module, capture output.
  2. Gate the route/UI to local environments; confirm nothing is reachable from staging or production.
  3. Diff the tool's output against php artisan event:list (native, textual) to validate fidelity before trusting the visual form.
  4. If the output is trustworthy, adopt as an onboarding and architecture-review artifact.
  5. Pin the version, add a dependabot/renovate entry with a manual-review rule for minor bumps.

Operational Impact

Maintenance Near-zero steady state — no production footprint, no migrations, no scheduled jobs. The real cost is version hygiene: a pre-1.0 single-maintainer package needs a human to read each changelog. Budget a few hours per year, not per quarter.

Support Community-only. No vendor, no SLA, no escalation path. The mitigating factor is that the tool is optional and reversible: uninstalling is a composer remove, and the native event:list command covers the functional minimum. Do not build process dependencies on it.

Scaling Two scaling dimensions, both about the development experience rather than traffic: (a) rendering cost and graph readability as event count grows, and (b) CI cost if the command is ever wired into a pipeline. Keep it out of CI gates; run it on demand.

Failure modes

  • Command errors on listener signatures the parser cannot resolve — degrades to partial output, not data loss.
  • Route conflict or stale published assets after a framework upgrade — manifests as a broken UI, easily triaged.
  • Stale graph treated as current truth after refactors — the genuine operational risk is epistemic, not technical: someone makes an architecture decision from an outdated picture. Mitigate by generating on demand and dating the output.
  • Accidental exposure in a non-local environment — the only failure mode with a security dimension.

Ramp-up Under an hour for a Laravel-fluent engineer. For a TPM, the value is asymmetric: it converts an invisible part of the architecture (the event graph) into something reviewable in a design discussion, an onboarding session, or an incident retrospective. That is the business case — architecture visibility for event-driven code, purchased at roughly the cost of a dev-dependency review, with the caveat that the picture must be validated against event:list before anyone cites it in a decision.

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.
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
tacticmedia/scim-server-bundle
neika-ai/symfony-bundle
mattleads/agent-publishing-bundle
glavweb/framework-bundle