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 5.1 Chiffon API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 5.1
      • 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
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
    • Event
      • Decorator
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • 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

  • $_eventList protected
    Cake\Event\EventList|null

    The event list object.

  • $_generalManager protected static
    Cake\Event\EventManager|null

    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
    array

    List of listener callbacks associated to

  • $_trackEvents protected
    bool

    Enables automatic adding of events to the event list object if it is present.

  • $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

  • addEventToList() public

    Adds an event to the list if the event list object is present.

  • dispatch() public

    Dispatches a new event to all configured listeners

  • getEventList() public

    Returns the event list.

  • 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

  • isTrackingEvents() public

    Returns whether this manager is set up to track events

  • listeners() public

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

  • matchingListeners() public

    Returns the listeners matching a specified pattern

  • normalizeHandler() protected

    Builds a single normalized handler.

  • normalizeHandlers() protected

    Builds an array of normalized handlers.

  • 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

  • setEventList() public

    Enables the listing of dispatched events.

  • trackEvents() public

    Enables / disables event tracking at runtime.

  • unsetEventList() public

    Disables the listing of dispatched events.

Method Detail

__debugInfo() ¶ public

__debugInfo(): array<string, mixed>

Debug friendly object properties.

Returns
array<string, mixed>

_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\EventInterface<TSubject> $event): mixed

Calls a listener.

Parameters
callable $listener

The listener to trigger.

Cake\Event\EventInterface<TSubject> $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

addEventToList() ¶ public

addEventToList(Cake\Event\EventInterface<TSubject> $event): $this

Adds an event to the list if the event list object is present.

Parameters
Cake\Event\EventInterface<TSubject> $event

An event to add to the list.

Returns
$this

dispatch() ¶ public

dispatch(Cake\Event\EventInterface<TSubject>|string $event): Cake\Event\EventInterface<TSubject>

Dispatches a new event to all configured listeners

Parameters
Cake\Event\EventInterface<TSubject>|string $event
Returns
Cake\Event\EventInterface<TSubject>

getEventList() ¶ public

getEventList(): Cake\Event\EventList|null

Returns the event list.

Returns
Cake\Event\EventList|null

instance() ¶ public static

instance(Cake\Event\EventManager|null $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|null $manager optional

Event manager instance.

Returns
Cake\Event\EventManager

isTrackingEvents() ¶ public

isTrackingEvents(): bool

Returns whether this manager is set up to track events

Returns
bool

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
Returns
array

matchingListeners() ¶ public

matchingListeners(string $eventKeyPattern): array

Returns the listeners matching a specified pattern

Parameters
string $eventKeyPattern

Pattern to match.

Returns
array

normalizeHandler() ¶ protected

normalizeHandler(Cake\Event\EventListenerInterface $subscriber, callable|array|string $handler): array

Builds a single normalized handler.

A normalized handler is an array with these keys:

  • callable - The event handler closure
    • settings - The event handler settings
Parameters
Cake\Event\EventListenerInterface $subscriber

Event subscriber

callable|array|string $handler

Event handler

Returns
array

normalizeHandlers() ¶ protected

normalizeHandlers(Cake\Event\EventListenerInterface $subscriber, callable|array|string $handlers): array

Builds an array of normalized handlers.

A normalized handler is an array with these keys:

  • callable - The event handler closure
    • settings - The event handler settings
Parameters
Cake\Event\EventListenerInterface $subscriber

Event subscriber

callable|array|string $handlers

Event handlers

Returns
array

off() ¶ public

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

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
Cake\Event\EventListenerInterface|callable|string $eventKey
Cake\Event\EventListenerInterface|callable|null $callable optional
Returns
$this

on() ¶ public

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

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
Cake\Event\EventListenerInterface|string $eventKey
callable|array $options optional
callable|null $callable optional
Returns
$this

prioritisedListeners() ¶ public

prioritisedListeners(string $eventKey): array

Returns the listeners for the specified event key indexed by priority

Parameters
string $eventKey

Event key.

Returns
array

setEventList() ¶ public

setEventList(Cake\Event\EventList $eventList): $this

Enables the listing of dispatched events.

Parameters
Cake\Event\EventList $eventList

The event list object to use.

Returns
$this

trackEvents() ¶ public

trackEvents(bool $enabled): $this

Enables / disables event tracking at runtime.

Parameters
bool $enabled

True or false to enable / disable it.

Returns
$this

unsetEventList() ¶ public

unsetEventList(): $this

Disables the listing of dispatched events.

Returns
$this

Property Detail

$_eventList ¶ protected

The event list object.

Type
Cake\Event\EventList|null

$_generalManager ¶ protected static

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

Type
Cake\Event\EventManager|null

$_isGlobal ¶ protected

Internal flag to distinguish a common manager from the singleton

Type
bool

$_listeners ¶ protected

List of listener callbacks associated to

Type
array

$_trackEvents ¶ protected

Enables automatic adding of events to the event list object if it is present.

Type
bool

$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