windwalker/event
Lightweight event dispatching for PHP and the Windwalker framework: register listeners, dispatch events, and decouple components with a simple, PSR-14-friendly API.
Dispatcher, Symfony's EventDispatcher) or on a framework-agnostic contract (PSR-14). Its standalone design is the argument for keeping domain events out of framework coupling.[READ ONLY] mirror flag, this should not appear on a dependency roadmap as a strategic bet. The decision it best supports is "explicitly not adopting this," documented so it isn't re-litigated.Adopt only if all of the following hold:
symfony/event-dispatcher.Look elsewhere when:
Illuminate\Events\Dispatcher with Events/Listeners, ShouldQueue for async, and event discovery. Adding a second dispatcher creates two mental models for the same concept. This is a hard no for a Laravel codebase.symfony/event-dispatcher or league/event (both PSR-14 aligned, widely depended on).To executives: This is a small, free, MIT-licensed event dispatcher maintained as part of the Windwalker PHP framework. It costs nothing to evaluate and carries no licensing risk. However, it has essentially no independent adoption (zero stars, zero downstream dependents) and is published as a read-only mirror, so we should treat it as a reference implementation rather than a dependency. Recommendation: do not add it to our stack; it informs our design of an event-driven module boundary but is not a strategic component. No budget, no procurement, no vendor risk — just a decision to reuse what we already have.
To engineering: Read the source for a compact example of listener priorities, subscriber objects, and event propagation — it is a clean ~1-file-per-concept design worth 30 minutes. Do not adopt it: on Laravel we already have a battle-tested dispatcher with queueing, fakes, and event discovery; off Laravel, use symfony/event-dispatcher or league/event for PSR-14 compatibility and a real support surface. If we build a plugin/hook layer, copy the pattern (priority-ordered listeners, subscriber registration, stoppable propagation) and bind it to PSR-14 interfaces so we can swap implementations later without touching call sites.
How can I help you explore Laravel packages today?