Skip to main content

Events Package Cheatsheet

Code-verified reference for packages/events.

Core Interface

CanAcceptEventHandler

CanFormatConsoleEvent

Basic Dispatcher Usage

Constructor: 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)

Notes:
  • Event implements JsonSerializable.
  • 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

Pass CanHandleEvents explicitly to classes that emit events.

Framework Bridges

Symfony Bridge

Note: SymfonyEventDispatcher::wiretap() accepts an optional int $priority = 0 parameter (beyond the interface contract).

HandlesEvents Trait

Methods:
  • withEventHandler(CanHandleEvents $events): static
  • dispatch(Event $event): object
  • onEvent(string $class, ?callable $listener): self — null listener is a no-op
  • wiretap(?callable $listener): self — null listener is a no-op
Call withEventHandler($events) before dispatch(), onEvent(), or wiretap() — throws LogicException otherwise.

Event Formatter Utilities

Notes:
  • logFilter($threshold, $eventLevel) returns true when $eventLevel severity 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.

Console Event Printer

ConsoleEventLine

ConsoleColor Enum