As a maintainer of an event sourcing library and an event dispatcher page. Event dispatchers for frameworks should not be used for event dispatching where events are messages for a system. These things are VERY different and should not be mixed.
FW-style event dispatchers are used as a control flow mechanism. They are not suitable for communicating information in an application or between apps. Event messages are used to communicate facts, while propagation stops (FW-style) allow you to deny what is already the truth.
A role your own event dispatcher interface would literally be:

interface EventDispatcher {
public function dispatch(object $event): void;
}

It should be about >sending< events. Unlike PSR-14, which is also about responses (via event mutation) and events as return values.
You can follow @frankdejonge.
Tip: mention @twtextapp on a Twitter thread with the keyword “unroll” to get a link to it.

Latest Threads Unrolled: