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.
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
local/development, it becomes an information-disclosure path enumerating internal architecture. This is a configuration review item, not a defect.Key questions
laravel/framework ^11 constraints in composer.json, and what is the tested CI matrix (PHP 8.2 / 8.3)?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
php artisan event:list (native, textual) to validate fidelity before trusting the visual form.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
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.
How can I help you explore Laravel packages today?