You are here

class HydratorListener in Zircon Profile 8

Same name in this branch
  1. 8 vendor/zendframework/zend-hydrator/src/Aggregate/HydratorListener.php \Zend\Hydrator\Aggregate\HydratorListener
  2. 8 vendor/zendframework/zend-stdlib/src/Hydrator/Aggregate/HydratorListener.php \Zend\Stdlib\Hydrator\Aggregate\HydratorListener
Same name and namespace in other branches
  1. 8.0 vendor/zendframework/zend-hydrator/src/Aggregate/HydratorListener.php \Zend\Hydrator\Aggregate\HydratorListener

Aggregate listener wrapping around a hydrator.

Listens to {

Hierarchy

  • class \Zend\Hydrator\Aggregate\HydratorListener extends \Zend\EventManager\AbstractListenerAggregate

Expanded class hierarchy of HydratorListener

See also

HydrateEvent::EVENT_HYDRATE} and {@see ExtractEvent::EVENT_EXTRACT}

1 file declares its use of HydratorListener
HydratorListener.php in vendor/zendframework/zend-stdlib/src/Hydrator/Aggregate/HydratorListener.php

File

vendor/zendframework/zend-hydrator/src/Aggregate/HydratorListener.php, line 21

Namespace

Zend\Hydrator\Aggregate
View source
class HydratorListener extends AbstractListenerAggregate {

  /**
   * @var HydratorInterface
   */
  protected $hydrator;

  /**
   * @param HydratorInterface $hydrator
   */
  public function __construct(HydratorInterface $hydrator) {
    $this->hydrator = $hydrator;
  }

  /**
   * {@inheritDoc}
   */
  public function attach(EventManagerInterface $events, $priority = 1) {
    $this->listeners[] = $events
      ->attach(HydrateEvent::EVENT_HYDRATE, [
      $this,
      'onHydrate',
    ], $priority);
    $this->listeners[] = $events
      ->attach(ExtractEvent::EVENT_EXTRACT, [
      $this,
      'onExtract',
    ], $priority);
  }

  /**
   * Callback to be used when {@see HydrateEvent::EVENT_HYDRATE} is triggered
   *
   * @param HydrateEvent $event
   * @return object
   * @internal
   */
  public function onHydrate(HydrateEvent $event) {
    $object = $this->hydrator
      ->hydrate($event
      ->getHydrationData(), $event
      ->getHydratedObject());
    $event
      ->setHydratedObject($object);
    return $object;
  }

  /**
   * Callback to be used when {@see ExtractEvent::EVENT_EXTRACT} is triggered
   *
   * @param ExtractEvent $event
   * @return array
   * @internal
   */
  public function onExtract(ExtractEvent $event) {
    $data = $this->hydrator
      ->extract($event
      ->getExtractionObject());
    $event
      ->mergeExtractedData($data);
    return $data;
  }

}

Members

Namesort descending Modifiers Type Description Overrides
HydratorListener::$hydrator protected property
HydratorListener::attach public function
HydratorListener::onExtract public function Callback to be used when {
HydratorListener::onHydrate public function Callback to be used when {
HydratorListener::__construct public function