Event manager: notification system

Use the EventManager when you want to create a per-instance notification system for your objects.

category Zend
package Zend_EventManager
copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
license New BSD License

 Methods

Constructor

__construct(null|string|integer|array|\Traversable $identifiers = null) : void

Allows optionally specifying identifier(s) to use to pull signals from a StaticEventManager.

Parameters

$identifiers

nullstringintegerarray\Traversable

Add some identifier(s) (appends to any currently set identifiers)

addIdentifiers(string|integer|array|\Traversable $identifiers) : \Zend_EventManager_EventManager

Parameters

$identifiers

stringintegerarray\Traversable

Returns

\Zend_EventManager_EventManager

Attach a listener to an event

attach(string|array|\Zend_EventManager_ListenerAggregate $event, callback|integer $callback = null, integer $priority = 1) : \Zend_Stdlib_CallbackHandler | mixed

The first argument is the event, and the next argument describes a callback that will respond to that event. A CallbackHandler instance describing the event listener combination will be returned.

The last argument indicates a priority at which the event should be executed. By default, this value is 1; however, you may set it for any integer value. Higher values have higher priority (i.e., execute first).

You can specify "*" for the event name. In such cases, the listener will be triggered for every event.

inherited_from \Zend_EventManager_EventCollection::attach()

Parameters

$event

stringarray\Zend_EventManager_ListenerAggregate

An event or array of event names. If a ListenerAggregate, proxies to {@link attachAggregate()}.

$callback

callbackinteger

If string $event provided, expects PHP callback; for a ListenerAggregate $event, this will be the priority

$priority

integer

If provided, the priority at which to register the callback

Returns

\Zend_Stdlib_CallbackHandlermixedCallbackHandler if attaching callback (to allow later unsubscribe); mixed if attaching aggregate

Attach a listener aggregate

attachAggregate(\Zend_EventManager_ListenerAggregate $aggregate, integer $priority = 1) : mixed

Listener aggregates accept an EventCollection instance, and call attach() one or more times, typically to attach to multiple events using local methods.

Parameters

$aggregate

\Zend_EventManager_ListenerAggregate

$priority

integer

If provided, a suggested priority for the aggregate to use

Returns

mixedreturn value of {@link Zend_EventManager_ListenerAggregate::attach()}

Clear all listeners for a given event

clearListeners(string $event) : void
inherited_from \Zend_EventManager_EventCollection::clearListeners()

Parameters

$event

string

Unsubscribe a listener from an event

detach(\Zend_Stdlib_CallbackHandler|\Zend_EventManager_ListenerAggregate $listener) : boolean
inherited_from \Zend_EventManager_EventCollection::detach()

Parameters

$listener

\Zend_Stdlib_CallbackHandler\Zend_EventManager_ListenerAggregate

Exceptions

\Zend_EventManager_Exception_InvalidArgumentException if invalid listener provided

Returns

booleanReturns true if event and listener found, and unsubscribed; returns false if either event or listener not found

Detach a listener aggregate

detachAggregate(\Zend_EventManager_ListenerAggregate $aggregate) : mixed

Listener aggregates accept an EventCollection instance, and call detach() of all previously attached listeners.

Parameters

$aggregate

\Zend_EventManager_ListenerAggregate

Returns

mixedreturn value of {@link Zend_EventManager_ListenerAggregate::detach()}

Retrieve all registered events

getEvents() : array
inherited_from \Zend_EventManager_EventCollection::getEvents()

Returns

array

Get the identifier(s) for this Zend_EventManager_EventManager

getIdentifiers() : array

Returns

array

Retrieve all listeners for a given event

getListeners(string $event) : \Zend_Stdlib_PriorityQueue
inherited_from \Zend_EventManager_EventCollection::getListeners()

Parameters

$event

string

Returns

\Zend_Stdlib_PriorityQueue

Get static collections container

getSharedCollections() : false | \Zend_EventManager_SharedEventCollection

Returns

false\Zend_EventManager_SharedEventCollection

Prepare arguments

prepareArgs(array $args) : \ArrayObject

Use this method if you want to be able to modify arguments from within a listener. It returns an ArrayObject of the arguments, which may then be passed to trigger() or triggerUntil().

Parameters

$args

array

Returns

\ArrayObject

Set the event class to utilize

setEventClass(string $class) : \Zend_EventManager_EventManager

Parameters

$class

string

Returns

\Zend_EventManager_EventManager

Set the identifiers (overrides any currently set identifiers)

setIdentifiers(string|integer|array|\Traversable $identifiers) : \Zend_EventManager_EventManager

Parameters

$identifiers

stringintegerarray\Traversable

Returns

\Zend_EventManager_EventManager

Set static collections container

setSharedCollections(\Zend_EventManager_SharedEventCollection $collections) : \Zend_EventManager_EventManager
inherited_from \Zend_EventManager_SharedEventCollectionAware::setSharedCollections()
fluent This method is part of a fluent interface and will return the same instance

Parameters

$collections

\Zend_EventManager_SharedEventCollection

Returns

\Zend_EventManager_EventManager

Trigger all listeners for a given event

trigger(string $event, string|object $target = null, array|\ArrayAccess $argv = array(), null|callback $callback = null) : \Zend_EventManager_ResponseCollection

Can emulate triggerUntil() if the last argument provided is a callback.

inherited_from \Zend_EventManager_EventCollection::trigger()

Parameters

$event

string

$target

stringobject

Object calling emit, or symbol describing target (such as static method name)

$argv

array\ArrayAccess

Array of arguments; typically, should be associative

$callback

nullcallback

Returns

\Zend_EventManager_ResponseCollectionAll listener return values

Trigger listeners until return value of one causes a callback to evaluate to true

triggerUntil(string $event, string|object $target, array|\ArrayAccess $argv = null, Callable $callback = null

Triggers listeners until the provided callback evaluates the return value of one as true, or until all listeners have been executed.

inherited_from \Zend_EventManager_EventCollection::triggerUntil()

Parameters

$event

string

$target

stringobject

Object calling emit, or symbol describing target (such as static method name)

$argv

array\ArrayAccess

Array of arguments; typically, should be associative

$callback

Callable

Exceptions

\Zend_Stdlib_Exception_InvalidCallbackException if invalid callback provided

Remove any shared collections

unsetSharedCollections() : void

Sets \$sharedCollections to boolean false to disable ability to lazy-load static event manager instance.

Get list of all listeners attached to the shared collection for identifiers registered by this instance

getSharedListeners(string $event) : array

Parameters

$event

string

Returns

array

Add listeners to the master queue of listeners

insertListeners(\Zend_Stdlib_PriorityQueue $masterListeners, \Zend_Stdlib_PriorityQueue $listeners) : void

Used to inject shared listeners and wildcard listeners.

Parameters

$masterListeners

\Zend_Stdlib_PriorityQueue

$listeners

\Zend_Stdlib_PriorityQueue

Trigger listeners

triggerListeners(string $event, \EventDescription $e, null|callback $callback = null) : \ResponseCollection

Actual functionality for triggering listeners, to which both trigger() and triggerUntil() delegate.

Parameters

$event

string

Event name

$e

\EventDescription

$callback

nullcallback

Returns

\ResponseCollection

 Properties

 

Class representing the event being emitted

$eventClass : string

Default

'Zend_EventManager_Event'
 

Subscribed events and their listeners

$events : array

Default

array()
 

Identifiers, used to pull static signals from StaticEventManager

$identifiers : array

Default

array()
 

Static collections

$sharedCollections : false | null | \Zend_EventManager_StaticEventCollection

Default

null