class GenericEvent

Event encapsulation class.

Encapsulates events thus decoupling the observer from the subject they encapsulate.

@author Drak <drak@zikula.org>

Hierarchy

  • class \Symfony\Component\EventDispatcher\Event
    • class \Symfony\Component\EventDispatcher\GenericEvent implements \Symfony\Component\EventDispatcher\ArrayAccess, \Symfony\Component\EventDispatcher\IteratorAggregate

Expanded class hierarchy of GenericEvent

1 file declares its use of GenericEvent
GenericEventTest.php in drupal/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/Tests/GenericEventTest.php

File

drupal/core/vendor/symfony/event-dispatcher/Symfony/Component/EventDispatcher/GenericEvent.php, line 21

Namespace

Symfony\Component\EventDispatcher
View source
class GenericEvent extends Event implements \ArrayAccess, \IteratorAggregate {

  /**
   * Observer pattern subject.
   *
   * @var mixed usually object or callable
   */
  protected $subject;

  /**
   * Array of arguments.
   *
   * @var array
   */
  protected $arguments;

  /**
   * Encapsulate an event with $subject and $args.
   *
   * @param mixed $subject   The subject of the event, usually an object.
   * @param array $arguments Arguments to store in the event.
   */
  public function __construct($subject = null, array $arguments = array()) {
    $this->subject = $subject;
    $this->arguments = $arguments;
  }

  /**
   * Getter for subject property.
   *
   * @return mixed $subject The observer subject.
   */
  public function getSubject() {
    return $this->subject;
  }

  /**
   * Get argument by key.
   *
   * @param string $key Key.
   *
   * @throws \InvalidArgumentException If key is not found.
   *
   * @return mixed Contents of array key.
   */
  public function getArgument($key) {
    if ($this
      ->hasArgument($key)) {
      return $this->arguments[$key];
    }
    throw new \InvalidArgumentException(sprintf('%s not found in %s', $key, $this
      ->getName()));
  }

  /**
   * Add argument to event.
   *
   * @param string $key   Argument name.
   * @param mixed  $value Value.
   *
   * @return GenericEvent
   */
  public function setArgument($key, $value) {
    $this->arguments[$key] = $value;
    return $this;
  }

  /**
   * Getter for all arguments.
   *
   * @return array
   */
  public function getArguments() {
    return $this->arguments;
  }

  /**
   * Set args property.
   *
   * @param array $args Arguments.
   *
   * @return GenericEvent
   */
  public function setArguments(array $args = array()) {
    $this->arguments = $args;
    return $this;
  }

  /**
   * Has argument.
   *
   * @param string $key Key of arguments array.
   *
   * @return boolean
   */
  public function hasArgument($key) {
    return array_key_exists($key, $this->arguments);
  }

  /**
   * ArrayAccess for argument getter.
   *
   * @param string $key Array key.
   *
   * @throws \InvalidArgumentException If key does not exist in $this->args.
   *
   * @return mixed
   */
  public function offsetGet($key) {
    return $this
      ->getArgument($key);
  }

  /**
   * ArrayAccess for argument setter.
   *
   * @param string $key   Array key to set.
   * @param mixed  $value Value.
   */
  public function offsetSet($key, $value) {
    $this
      ->setArgument($key, $value);
  }

  /**
   * ArrayAccess for unset argument.
   *
   * @param string $key Array key.
   */
  public function offsetUnset($key) {
    if ($this
      ->hasArgument($key)) {
      unset($this->arguments[$key]);
    }
  }

  /**
   * ArrayAccess has argument.
   *
   * @param string $key Array key.
   *
   * @return boolean
   */
  public function offsetExists($key) {
    return $this
      ->hasArgument($key);
  }

  /**
   * IteratorAggregate for iterating over the object like an array
   *
   * @return \ArrayIterator
   */
  public function getIterator() {
    return new \ArrayIterator($this->arguments);
  }

}

Members

Namesort descending Modifiers Type Description Overrides
Event::$dispatcher private property
Event::$name private property
Event::$propagationStopped private property
Event::getDispatcher public function Returns the EventDispatcher that dispatches this Event
Event::getName public function Gets the event's name.
Event::isPropagationStopped public function Returns whether further event listeners should be triggered.
Event::setDispatcher public function Stores the EventDispatcher that dispatches this Event
Event::setName public function Sets the event's name property.
Event::stopPropagation public function Stops the propagation of the event to further event listeners.
GenericEvent::$arguments protected property Array of arguments.
GenericEvent::$subject protected property Observer pattern subject.
GenericEvent::getArgument public function Get argument by key.
GenericEvent::getArguments public function Getter for all arguments.
GenericEvent::getIterator public function IteratorAggregate for iterating over the object like an array
GenericEvent::getSubject public function Getter for subject property.
GenericEvent::hasArgument public function Has argument.
GenericEvent::offsetExists public function ArrayAccess has argument.
GenericEvent::offsetGet public function ArrayAccess for argument getter.
GenericEvent::offsetSet public function ArrayAccess for argument setter.
GenericEvent::offsetUnset public function ArrayAccess for unset argument.
GenericEvent::setArgument public function Add argument to event.
GenericEvent::setArguments public function Set args property.
GenericEvent::__construct public function Encapsulate an event with $subject and $args.