Verzeichnisstruktur phpBB-3.3.15
- Veröffentlicht
- 28.08.2024
So funktioniert es
|
Auf das letzte Element klicken. Dies geht jeweils ein Schritt zurück |
Auf das Icon klicken, dies öffnet das Verzeichnis. Nochmal klicken schließt das Verzeichnis. |
|
(Beispiel Datei-Icons)
|
Auf das Icon klicken um den Quellcode anzuzeigen |
GenericEvent.php
001 <?php
002
003 /*
004 * This file is part of the Symfony package.
005 *
006 * (c) Fabien Potencier <fabien@symfony.com>
007 *
008 * For the full copyright and license information, please view the LICENSE
009 * file that was distributed with this source code.
010 */
011
012 namespace Symfony\Component\EventDispatcher;
013
014 /**
015 * Event encapsulation class.
016 *
017 * Encapsulates events thus decoupling the observer from the subject they encapsulate.
018 *
019 * @author Drak <drak@zikula.org>
020 */
021 class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate
022 {
023 protected $subject;
024 protected $arguments;
025
026 /**
027 * Encapsulate an event with $subject and $args.
028 *
029 * @param mixed $subject The subject of the event, usually an object or a callable
030 * @param array $arguments Arguments to store in the event
031 */
032 public function __construct($subject = null, array $arguments = [])
033 {
034 $this->subject = $subject;
035 $this->arguments = $arguments;
036 }
037
038 /**
039 * Getter for subject property.
040 *
041 * @return mixed The observer subject
042 */
043 public function getSubject()
044 {
045 return $this->subject;
046 }
047
048 /**
049 * Get argument by key.
050 *
051 * @param string $key Key
052 *
053 * @return mixed Contents of array key
054 *
055 * @throws \InvalidArgumentException if key is not found
056 */
057 public function getArgument($key)
058 {
059 if ($this->hasArgument($key)) {
060 return $this->arguments[$key];
061 }
062
063 throw new \InvalidArgumentException(sprintf('Argument "%s" not found.', $key));
064 }
065
066 /**
067 * Add argument to event.
068 *
069 * @param string $key Argument name
070 * @param mixed $value Value
071 *
072 * @return $this
073 */
074 public function setArgument($key, $value)
075 {
076 $this->arguments[$key] = $value;
077
078 return $this;
079 }
080
081 /**
082 * Getter for all arguments.
083 *
084 * @return array
085 */
086 public function getArguments()
087 {
088 return $this->arguments;
089 }
090
091 /**
092 * Set args property.
093 *
094 * @param array $args Arguments
095 *
096 * @return $this
097 */
098 public function setArguments(array $args = [])
099 {
100 $this->arguments = $args;
101
102 return $this;
103 }
104
105 /**
106 * Has argument.
107 *
108 * @param string $key Key of arguments array
109 *
110 * @return bool
111 */
112 public function hasArgument($key)
113 {
114 return \array_key_exists($key, $this->arguments);
115 }
116
117 /**
118 * ArrayAccess for argument getter.
119 *
120 * @param string $key Array key
121 *
122 * @return mixed
123 *
124 * @throws \InvalidArgumentException if key does not exist in $this->args
125 */
126 public function offsetGet($key)
127 {
128 return $this->getArgument($key);
129 }
130
131 /**
132 * ArrayAccess for argument setter.
133 *
134 * @param string $key Array key to set
135 * @param mixed $value Value
136 */
137 public function offsetSet($key, $value)
138 {
139 $this->setArgument($key, $value);
140 }
141
142 /**
143 * ArrayAccess for unset argument.
144 *
145 * @param string $key Array key
146 */
147 public function offsetUnset($key)
148 {
149 if ($this->hasArgument($key)) {
150 unset($this->arguments[$key]);
151 }
152 }
153
154 /**
155 * ArrayAccess has argument.
156 *
157 * @param string $key Array key
158 *
159 * @return bool
160 */
161 public function offsetExists($key)
162 {
163 return $this->hasArgument($key);
164 }
165
166 /**
167 * IteratorAggregate for iterating over the object like an array.
168 *
169 * @return \ArrayIterator
170 */
171 public function getIterator()
172 {
173 return new \ArrayIterator($this->arguments);
174 }
175 }
176