attach()
attachAggregate()
clearListeners()
detach()
detachAggregate()
getEvents()
getListeners()
$identifiers
Shared/contextual EventManager
Allows attaching to EMs composed by other classes without having an instance first. The assumption is that the SharedEventManager will be injected into EventManager instances, and then queried for additional listeners when triggering an event.
attach(string | array $id, string $event, \Zend\EventManager\callable $callback, int $priority) : \Zend\Stdlib\CallbackHandler | array
Allows attaching a callback to an event offered by one or more identifying components. As an example, the following connects to the "getAll" event of both an AbstractResource and EntityResource:
$sharedEventManager = new SharedEventManager();
$sharedEventManager->attach(
array('My\Resource\AbstractResource', 'My\Resource\EntityResource'),
'getAll',
function ($e) use ($cache) {
if (!$id = $e->getParam('id', false)) {
return;
}
if (!$data = $cache->load(get_class($resource) . '::getOne::' . $id )) {
return;
}
return $data;
}
);
stringarray
Identifier(s) for event emitting component(s)
string
\Zend\EventManager\callable
PHP Callback
int
Priority at which listener should execute
\Zend\Stdlib\CallbackHandler
array
Either CallbackHandler or array of CallbackHandlersattachAggregate(\Zend\EventManager\SharedListenerAggregateInterface $aggregate, int $priority) : mixed
Listener aggregates accept an EventManagerInterface instance, and call attachShared() one or more times, typically to attach to multiple events using local methods.
int
If provided, a suggested priority for the aggregate to use
mixed
return value of {@link ListenerAggregateInterface::attachShared()}clearListeners(string | int $id, null | string $event) : bool
stringint
nullstring
bool
detach(string | int $id, \Zend\Stdlib\CallbackHandler $listener) : bool
stringint
\Zend\Stdlib\CallbackHandler
bool
Returns true if event and listener found, and unsubscribed; returns false if either event or listener not founddetachAggregate(\Zend\EventManager\SharedListenerAggregateInterface $aggregate) : mixed
Listener aggregates accept a SharedEventManagerInterface instance, and call detachShared() of all previously attached listeners.
mixed
return value of {@link SharedListenerAggregateInterface::detachShared()}getEvents(string | int $id) : array
stringint
array
getListeners(string | int $id, string | int $event) : false | \Zend\Stdlib\PriorityQueue
$identifiers : array