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.6.0
13: * @license https://opensource.org/licenses/mit-license.php MIT License
14: */
15: namespace Cake\Event;
16:
17: /**
18: * Represents the transport class of events across the system. It receives a name, subject and an optional
19: * payload. The name can be any string that uniquely identifies the event across the application, while the subject
20: * represents the object that the event applies to.
21: *
22: * @property string $name (deprecated) Name of the event
23: * @property object $subject (deprecated) The object this event applies to
24: * @property mixed $result (deprecated) Property used to retain the result value of the event listeners
25: * @property array $data (deprecated) Custom data for the method that receives the event
26: */
27: interface EventInterface
28: {
29: /**
30: * Returns the name of this event. This is usually used as the event identifier.
31: *
32: * @return string
33: */
34: public function getName();
35:
36: /**
37: * Returns the subject of this event.
38: *
39: * @return object
40: */
41: public function getSubject();
42:
43: /**
44: * Stops the event from being used anymore.
45: *
46: * @return void
47: */
48: public function stopPropagation();
49:
50: /**
51: * Checks if the event is stopped.
52: *
53: * @return bool True if the event is stopped
54: */
55: public function isStopped();
56:
57: /**
58: * The result value of the event listeners.
59: *
60: * @return mixed
61: */
62: public function getResult();
63:
64: /**
65: * Listeners can attach a result value to the event.
66: *
67: * @param mixed $value The value to set.
68: * @return $this
69: */
70: public function setResult($value = null);
71:
72: /**
73: * Accesses the event data/payload.
74: *
75: * @param string|null $key The data payload element to return, or null to return all data.
76: * @return array|mixed|null The data payload if $key is null, or the data value for the given $key. If the $key does not
77: * exist a null value is returned.
78: */
79: public function getData($key = null);
80:
81: /**
82: * Assigns a value to the data/payload of this event.
83: *
84: * @param array|string $key An array will replace all payload data, and a key will set just that array item.
85: * @param mixed $value The value to set.
86: * @return $this
87: */
88: public function setData($key, $value = null);
89: }
90: