CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.0 Red Velvet API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 3.0
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Auth
    • Cache
    • Collection
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
    • Filesystem
    • Form
    • I18n
    • Log
    • Network
    • ORM
    • Routing
    • Shell
    • TestSuite
    • Utility
    • Validation
    • View

Class EventManager

The event manager is responsible for keeping track of event listeners, passing the correct data to them, and firing them in the correct order, when associated events are triggered. You can create multiple instances of this object to manage local events or keep a single instance and pass it around to manage all events in your app.

Namespace: Cake\Event

Property Summary

  • $_generalManager protected static
    Cake\Event\EventManager

    The globally available instance, used for dispatching events attached from any scope

  • $_isGlobal protected
    bool

    Internal flag to distinguish a common manager from the singleton

  • $_listeners protected
    object

    List of listener callbacks associated to

  • $defaultPriority public static
    int

    The default priority queue value for new, attached listeners

Method Summary

  • __debugInfo() public

    Debug friendly object properties.

  • _attachSubscriber() protected

    Auxiliary function to attach all implemented callbacks of a Cake\Event\EventListenerInterface class instance as individual methods on this manager

  • _callListener() protected

    Calls a listener.

  • _detachSubscriber() protected

    Auxiliary function to help detach all listeners provided by an object implementing EventListenerInterface

  • _extractCallable() protected

    Auxiliary function to extract and return a PHP callback type out of the callable definition from the return value of the implementedEvents method on a Cake\Event\EventListenerInterface

  • attach() public deprecated

    Adds a new listener to an event.

  • detach() public deprecated

    Removes a listener from the active listeners.

  • dispatch() public

    Dispatches a new event to all configured listeners

  • instance() public static

    Returns the globally available instance of a Cake\Event\EventManager this is used for dispatching events attached from outside the scope other managers were created. Usually for creating hook systems or inter-class communication

  • listeners() public

    Returns a list of all listeners for an eventKey in the order they should be called

  • off() public

    Remove a listener from the active listeners.

  • on() public

    Adds a new listener to an event.

  • prioritisedListeners() public

    Returns the listeners for the specified event key indexed by priority

Method Detail

__debugInfo() ¶ public

__debugInfo(): array

Debug friendly object properties.

Returns
array

_attachSubscriber() ¶ protected

_attachSubscriber(Cake\Event\EventListenerInterface $subscriber): void

Auxiliary function to attach all implemented callbacks of a Cake\Event\EventListenerInterface class instance as individual methods on this manager

Parameters
Cake\Event\EventListenerInterface $subscriber

Event listener.

Returns
void

_callListener() ¶ protected

_callListener(callable $listener, Cake\Event\Event $event): mixed

Calls a listener.

Direct callback invocation is up to 30% faster than using call_user_func_array. Optimize the common cases to provide improved performance.

Parameters
callable $listener

The listener to trigger.

Cake\Event\Event $event

Event instance.

Returns
mixed

_detachSubscriber() ¶ protected

_detachSubscriber(Cake\Event\EventListenerInterface $subscriber, string|null $eventKey = null): void

Auxiliary function to help detach all listeners provided by an object implementing EventListenerInterface

Parameters
Cake\Event\EventListenerInterface $subscriber

the subscriber to be detached

string|null $eventKey optional

optional event key name to unsubscribe the listener from

Returns
void

_extractCallable() ¶ protected

_extractCallable(array $function, Cake\Event\EventListenerInterface $object): callback

Auxiliary function to extract and return a PHP callback type out of the callable definition from the return value of the implementedEvents method on a Cake\Event\EventListenerInterface

Parameters
array $function

the array taken from a handler definition for an event

Cake\Event\EventListenerInterface $object

The handler object

Returns
callback

attach() ¶ public

attach(callable|Cake\Event\EventListenerInterface $callable, string $eventKey = null, array $options = []): void

Adds a new listener to an event.

Parameters
callable|Cake\Event\EventListenerInterface $callable

PHP valid callback type or instance of Cake\Event\EventListenerInterface to be called when the event named with $eventKey is triggered. If a Cake\Event\EventListenerInterface instance is passed, then the implementedEvents method will be called on the object to register the declared events individually as methods to be managed by this class. It is possible to define multiple event handlers per event name.

string $eventKey optional

The event unique identifier name with which the callback will be associated. If $callable is an instance of Cake\Event\EventListenerInterface this argument will be ignored

array $options optional

used to set the priority flag to the listener. In the future more options may be added. Priorities are treated as queues. Lower values are called before higher ones, and multiple attachments added to the same priority queue will be treated in the order of insertion.

Returns
void
Throws
InvalidArgumentException
When event key is missing or callable is not an instance of Cake\Event\EventListenerInterface.

detach() ¶ public

detach(callback|Cake\Event\EventListenerInterface $callable, string|null $eventKey = null): void

Removes a listener from the active listeners.

Parameters
callback|Cake\Event\EventListenerInterface $callable

any valid PHP callback type or an instance of EventListenerInterface

string|null $eventKey optional

The event unique identifier name with which the callback has been associated

Returns
void

dispatch() ¶ public

dispatch(string|Cake\Event\Event $event): Cake\Event\Event

Dispatches a new event to all configured listeners

Parameters
string|Cake\Event\Event $event

the event key name or instance of Event

Returns
Cake\Event\Event

instance() ¶ public static

instance(Cake\Event\EventManager $manager = null): Cake\Event\EventManager

Returns the globally available instance of a Cake\Event\EventManager this is used for dispatching events attached from outside the scope other managers were created. Usually for creating hook systems or inter-class communication

If called with the first parameter, it will be set as the globally available instance

Parameters
Cake\Event\EventManager $manager optional

Event manager instance.

Returns
Cake\Event\EventManager

listeners() ¶ public

listeners(string $eventKey): array

Returns a list of all listeners for an eventKey in the order they should be called

Parameters
string $eventKey

Event key.

Returns
array

off() ¶ public

off(string|Cake\Event\EventListenerInterface $eventKey, callback $callable = null): void

Remove a listener from the active listeners.

Remove a EventListenerInterface entirely:

$manager->off($listener);

Remove all listeners for a given event:

$manager->off('My.event');

Remove a specific listener:

$manager->off('My.event', $callback);

Remove a callback from all events:

$manager->off($callback);
Parameters
string|Cake\Event\EventListenerInterface $eventKey

The event unique identifier name with which the callback has been associated, or the $listener you want to remove.

callback $callable optional

The callback you want to detach.

Returns
void

on() ¶ public

on(string|Cake\Event\EventListenerInterface $eventKey = null, array|callable $options = [], callable $callable = null): void

Adds a new listener to an event.

A variadic interface to add listeners that emulates jQuery.on().

Binding an EventListenerInterface:

$eventManager->on($listener);

Binding with no options:

$eventManager->on('Model.beforeSave', $callable);

Binding with options:

$eventManager->on('Model.beforeSave', ['priority' => 90], $callable);
Parameters
string|Cake\Event\EventListenerInterface $eventKey optional

The event unique identifier name with which the callback will be associated. If $eventKey is an instance of Cake\Event\EventListenerInterface its events will be bound using the implementedEvents methods.

array|callable $options optional

Either an array of options or the callable you wish to bind to $eventKey. If an array of options, the priority key can be used to define the order. Priorities are treated as queues. Lower values are called before higher ones, and multiple attachments added to the same priority queue will be treated in the order of insertion.

callable $callable optional

The callable function you want invoked.

Returns
void
Throws
InvalidArgumentException
When event key is missing or callable is not an instance of Cake\Event\EventListenerInterface.

prioritisedListeners() ¶ public

prioritisedListeners(string $eventKey): array

Returns the listeners for the specified event key indexed by priority

Parameters
string $eventKey

Event key.

Returns
array

Property Detail

$_generalManager ¶ protected static

The globally available instance, used for dispatching events attached from any scope

Type
Cake\Event\EventManager

$_isGlobal ¶ protected

Internal flag to distinguish a common manager from the singleton

Type
bool

$_listeners ¶ protected

List of listener callbacks associated to

Type
object

$defaultPriority ¶ public static

The default priority queue value for new, attached listeners

Type
int
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs