Events Package Cheatsheet
Code-verified reference forpackages/events.
Core Interface
CanAcceptEventHandler
CanFormatConsoleEvent
Basic Dispatcher Usage
new EventDispatcher(string $name = 'default', ?EventDispatcherInterface $parent = null)
Notes:
addListener('*', $listener)also registers a global listener.- Class listeners run first (priority desc), wiretaps run after.
- Parent classes and implemented interfaces are considered for listener matching.
- When a parent dispatcher is set, events bubble up to it after local dispatch.
Event Base Class (Event)
EventimplementsJsonSerializable.- Object payloads are normalized to a simplified public-property array via
get_object_vars(). __toString()returns best-effort JSON of the event data.
Explicit Wiring
CanHandleEvents explicitly to classes that emit events.
Framework Bridges
Symfony Bridge
SymfonyEventDispatcher::wiretap() accepts an optional int $priority = 0 parameter (beyond the interface contract).
HandlesEvents Trait
withEventHandler(CanHandleEvents $events): staticdispatch(Event $event): objectonEvent(string $class, ?callable $listener): self— null listener is a no-opwiretap(?callable $listener): self— null listener is a no-op
withEventHandler($events) before dispatch(), onEvent(), or wiretap() — throws LogicException otherwise.
Event Formatter Utilities
logFilter($threshold, $eventLevel)returnstruewhen$eventLevelseverity is equal to or higher than$threshold.- Log level ranks: emergency=0, alert=1, critical=2, error=3, warning=4, notice=5, info=6, debug=7, other=8.