1: <?php
2: /**
3: * CakePHP(tm) : Rapid Development Framework (https://cakephp.org)
4: * Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
5: *
6: * Licensed under The MIT License
7: * For full copyright and license information, please see the LICENSE.txt
8: * Redistributions of files must retain the above copyright notice.
9: *
10: * @copyright Copyright (c) Cake Software Foundation, Inc. (https://cakefoundation.org)
11: * @link https://cakephp.org CakePHP(tm) Project
12: * @since 3.0.7
13: * @license https://opensource.org/licenses/mit-license.php MIT License
14: */
15: namespace Cake\Event;
16:
17: /**
18: * Objects implementing this interface can emit events.
19: *
20: * Objects with this interface can trigger events, and have
21: * an event manager retrieved from them.
22: *
23: * The Cake\Event\EventDispatcherTrait lets you easily implement
24: * this interface.
25: *
26: * @method \Cake\Event\EventManager getEventManager()
27: * @method $this setEventManager(\Cake\Event\EventManager $eventManager)
28: */
29: interface EventDispatcherInterface
30: {
31: /**
32: * Wrapper for creating and dispatching events.
33: *
34: * Returns a dispatched event.
35: *
36: * @param string $name Name of the event.
37: * @param array|null $data Any value you wish to be transported with this event to
38: * it can be read by listeners.
39: * @param object|null $subject The object that this event applies to
40: * ($this by default).
41: *
42: * @return \Cake\Event\Event
43: */
44: public function dispatchEvent($name, $data = null, $subject = null);
45:
46: /**
47: * Returns the Cake\Event\EventManager manager instance for this object.
48: *
49: * You can use this instance to register any new listeners or callbacks to the
50: * object events, or create your own events and trigger them at will.
51: *
52: * @deprecated 3.5.0 Use getEventManager()/setEventManager() instead.
53: * @param \Cake\Event\EventManager|null $eventManager the eventManager to set
54: * @return \Cake\Event\EventManager
55: */
56: public function eventManager(EventManager $eventManager = null);
57: }
58: