Wildcard Listeners

Sometimes you'll want to attach the same listener to all events of a given instance — or potentially, with a shared event collection, all contexts.

Attaching using the wildcard

To attach to all events on a given EventManager instance, you can use the wildcard event, *:

$events = new EventManager();
$events->attach('*', $listener);

Note that if you specify a priority, that priority will be used for this listener for any event triggered.

What the above specifies is that any event triggered by the event manager instance will result in notification of this particular listener.

Attaching using the wildcard via a SharedEventManager

Using the SharedEventManager, you can indicate that you want to attach to all events of a given identifier, a single named event across all identifiers, or all events on all identifiers.

$sharedEvents = new SharedEventManager();

// Attach to all events on the context "foo"
$sharedEvents->attach('foo', '*', $listener);

// Attach to the "foo" event of any context:
$sharedEvents->attach('*', 'foo', $listener);

// Attach to all events on all contexts:
$sharedEvents->attach('*', '*', $listener);

Note that if you specify a priority, that priority will be used for all events specified.