[ Index ] |
PHP Cross Reference of phpBB-3.1.12-deutsch |
[Summary view] [Print] [Text view]
1 <?php 2 3 /* 4 * This file is part of the Symfony package. 5 * 6 * (c) Fabien Potencier <fabien@symfony.com> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12 namespace Symfony\Component\EventDispatcher; 13 14 /** 15 * Event encapsulation class. 16 * 17 * Encapsulates events thus decoupling the observer from the subject they encapsulate. 18 * 19 * @author Drak <drak@zikula.org> 20 */ 21 class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate 22 { 23 /** 24 * Event subject. 25 * 26 * @var mixed usually object or callable 27 */ 28 protected $subject; 29 30 /** 31 * Array of arguments. 32 * 33 * @var array 34 */ 35 protected $arguments; 36 37 /** 38 * Encapsulate an event with $subject and $args. 39 * 40 * @param mixed $subject The subject of the event, usually an object. 41 * @param array $arguments Arguments to store in the event. 42 */ 43 public function __construct($subject = null, array $arguments = array()) 44 { 45 $this->subject = $subject; 46 $this->arguments = $arguments; 47 } 48 49 /** 50 * Getter for subject property. 51 * 52 * @return mixed $subject The observer subject. 53 */ 54 public function getSubject() 55 { 56 return $this->subject; 57 } 58 59 /** 60 * Get argument by key. 61 * 62 * @param string $key Key. 63 * 64 * @throws \InvalidArgumentException If key is not found. 65 * 66 * @return mixed Contents of array key. 67 */ 68 public function getArgument($key) 69 { 70 if ($this->hasArgument($key)) { 71 return $this->arguments[$key]; 72 } 73 74 throw new \InvalidArgumentException(sprintf('%s not found in %s', $key, $this->getName())); 75 } 76 77 /** 78 * Add argument to event. 79 * 80 * @param string $key Argument name. 81 * @param mixed $value Value. 82 * 83 * @return GenericEvent 84 */ 85 public function setArgument($key, $value) 86 { 87 $this->arguments[$key] = $value; 88 89 return $this; 90 } 91 92 /** 93 * Getter for all arguments. 94 * 95 * @return array 96 */ 97 public function getArguments() 98 { 99 return $this->arguments; 100 } 101 102 /** 103 * Set args property. 104 * 105 * @param array $args Arguments. 106 * 107 * @return GenericEvent 108 */ 109 public function setArguments(array $args = array()) 110 { 111 $this->arguments = $args; 112 113 return $this; 114 } 115 116 /** 117 * Has argument. 118 * 119 * @param string $key Key of arguments array. 120 * 121 * @return bool 122 */ 123 public function hasArgument($key) 124 { 125 return array_key_exists($key, $this->arguments); 126 } 127 128 /** 129 * ArrayAccess for argument getter. 130 * 131 * @param string $key Array key. 132 * 133 * @throws \InvalidArgumentException If key does not exist in $this->args. 134 * 135 * @return mixed 136 */ 137 public function offsetGet($key) 138 { 139 return $this->getArgument($key); 140 } 141 142 /** 143 * ArrayAccess for argument setter. 144 * 145 * @param string $key Array key to set. 146 * @param mixed $value Value. 147 */ 148 public function offsetSet($key, $value) 149 { 150 $this->setArgument($key, $value); 151 } 152 153 /** 154 * ArrayAccess for unset argument. 155 * 156 * @param string $key Array key. 157 */ 158 public function offsetUnset($key) 159 { 160 if ($this->hasArgument($key)) { 161 unset($this->arguments[$key]); 162 } 163 } 164 165 /** 166 * ArrayAccess has argument. 167 * 168 * @param string $key Array key. 169 * 170 * @return bool 171 */ 172 public function offsetExists($key) 173 { 174 return $this->hasArgument($key); 175 } 176 177 /** 178 * IteratorAggregate for iterating over the object like an array. 179 * 180 * @return \ArrayIterator 181 */ 182 public function getIterator() 183 { 184 return new \ArrayIterator($this->arguments); 185 } 186 }
title
Description
Body
title
Description
Body
title
Description
Body
title
Body
Generated: Thu Jan 11 00:25:41 2018 | Cross-referenced by PHPXref 0.7.1 |