| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182 | 
							- <?php
 
- /*
 
-  * This file is part of the Symfony package.
 
-  *
 
-  * (c) Fabien Potencier <fabien@symfony.com>
 
-  *
 
-  * For the full copyright and license information, please view the LICENSE
 
-  * file that was distributed with this source code.
 
-  */
 
- namespace Symfony\Component\EventDispatcher;
 
- use Symfony\Contracts\EventDispatcher\Event;
 
- /**
 
-  * Event encapsulation class.
 
-  *
 
-  * Encapsulates events thus decoupling the observer from the subject they encapsulate.
 
-  *
 
-  * @author Drak <drak@zikula.org>
 
-  *
 
-  * @implements \ArrayAccess<string, mixed>
 
-  * @implements \IteratorAggregate<string, mixed>
 
-  */
 
- class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate
 
- {
 
-     protected $subject;
 
-     protected $arguments;
 
-     /**
 
-      * Encapsulate an event with $subject and $args.
 
-      *
 
-      * @param mixed $subject   The subject of the event, usually an object or a callable
 
-      * @param array $arguments Arguments to store in the event
 
-      */
 
-     public function __construct($subject = null, array $arguments = [])
 
-     {
 
-         $this->subject = $subject;
 
-         $this->arguments = $arguments;
 
-     }
 
-     /**
 
-      * Getter for subject property.
 
-      *
 
-      * @return mixed
 
-      */
 
-     public function getSubject()
 
-     {
 
-         return $this->subject;
 
-     }
 
-     /**
 
-      * Get argument by key.
 
-      *
 
-      * @return mixed
 
-      *
 
-      * @throws \InvalidArgumentException if key is not found
 
-      */
 
-     public function getArgument(string $key)
 
-     {
 
-         if ($this->hasArgument($key)) {
 
-             return $this->arguments[$key];
 
-         }
 
-         throw new \InvalidArgumentException(sprintf('Argument "%s" not found.', $key));
 
-     }
 
-     /**
 
-      * Add argument to event.
 
-      *
 
-      * @param mixed $value Value
 
-      *
 
-      * @return $this
 
-      */
 
-     public function setArgument(string $key, $value)
 
-     {
 
-         $this->arguments[$key] = $value;
 
-         return $this;
 
-     }
 
-     /**
 
-      * Getter for all arguments.
 
-      *
 
-      * @return array
 
-      */
 
-     public function getArguments()
 
-     {
 
-         return $this->arguments;
 
-     }
 
-     /**
 
-      * Set args property.
 
-      *
 
-      * @return $this
 
-      */
 
-     public function setArguments(array $args = [])
 
-     {
 
-         $this->arguments = $args;
 
-         return $this;
 
-     }
 
-     /**
 
-      * Has argument.
 
-      *
 
-      * @return bool
 
-      */
 
-     public function hasArgument(string $key)
 
-     {
 
-         return \array_key_exists($key, $this->arguments);
 
-     }
 
-     /**
 
-      * ArrayAccess for argument getter.
 
-      *
 
-      * @param string $key Array key
 
-      *
 
-      * @return mixed
 
-      *
 
-      * @throws \InvalidArgumentException if key does not exist in $this->args
 
-      */
 
-     #[\ReturnTypeWillChange]
 
-     public function offsetGet($key)
 
-     {
 
-         return $this->getArgument($key);
 
-     }
 
-     /**
 
-      * ArrayAccess for argument setter.
 
-      *
 
-      * @param string $key   Array key to set
 
-      * @param mixed  $value Value
 
-      *
 
-      * @return void
 
-      */
 
-     #[\ReturnTypeWillChange]
 
-     public function offsetSet($key, $value)
 
-     {
 
-         $this->setArgument($key, $value);
 
-     }
 
-     /**
 
-      * ArrayAccess for unset argument.
 
-      *
 
-      * @param string $key Array key
 
-      *
 
-      * @return void
 
-      */
 
-     #[\ReturnTypeWillChange]
 
-     public function offsetUnset($key)
 
-     {
 
-         if ($this->hasArgument($key)) {
 
-             unset($this->arguments[$key]);
 
-         }
 
-     }
 
-     /**
 
-      * ArrayAccess has argument.
 
-      *
 
-      * @param string $key Array key
 
-      *
 
-      * @return bool
 
-      */
 
-     #[\ReturnTypeWillChange]
 
-     public function offsetExists($key)
 
-     {
 
-         return $this->hasArgument($key);
 
-     }
 
-     /**
 
-      * IteratorAggregate for iterating over the object like an array.
 
-      *
 
-      * @return \ArrayIterator<string, mixed>
 
-      */
 
-     #[\ReturnTypeWillChange]
 
-     public function getIterator()
 
-     {
 
-         return new \ArrayIterator($this->arguments);
 
-     }
 
- }
 
 
  |