[ Index ]

PHP Cross Reference of phpBB-3.2.11-deutsch

title

Body

[close]

/vendor/zendframework/zend-stdlib/src/Hydrator/Aggregate/ -> AggregateHydrator.php (source)

   1  <?php
   2  /**
   3   * Zend Framework (http://framework.zend.com/)
   4   *
   5   * @link      http://github.com/zendframework/zf2 for the canonical source repository
   6   * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
   7   * @license   http://framework.zend.com/license/new-bsd New BSD License
   8   */
   9  
  10  namespace Zend\Stdlib\Hydrator\Aggregate;
  11  
  12  use Zend\EventManager\EventManager;
  13  use Zend\EventManager\EventManagerAwareInterface;
  14  use Zend\EventManager\EventManagerInterface;
  15  use Zend\Stdlib\Hydrator\HydratorInterface;
  16  
  17  /**
  18   * Aggregate hydrator that composes multiple hydrators via events
  19   */
  20  class AggregateHydrator implements HydratorInterface, EventManagerAwareInterface
  21  {
  22      const DEFAULT_PRIORITY = 1;
  23  
  24      /**
  25       * @var \Zend\EventManager\EventManagerInterface|null
  26       */
  27      protected $eventManager;
  28  
  29      /**
  30       * Attaches the provided hydrator to the list of hydrators to be used while hydrating/extracting data
  31       *
  32       * @param \Zend\Stdlib\Hydrator\HydratorInterface $hydrator
  33       * @param int                                     $priority
  34       */
  35      public function add(HydratorInterface $hydrator, $priority = self::DEFAULT_PRIORITY)
  36      {
  37          $this->getEventManager()->attachAggregate(new HydratorListener($hydrator), $priority);
  38      }
  39  
  40      /**
  41       * {@inheritDoc}
  42       */
  43      public function extract($object)
  44      {
  45          $event = new ExtractEvent($this, $object);
  46  
  47          $this->getEventManager()->trigger($event);
  48  
  49          return $event->getExtractedData();
  50      }
  51  
  52      /**
  53       * {@inheritDoc}
  54       */
  55      public function hydrate(array $data, $object)
  56      {
  57          $event = new HydrateEvent($this, $object, $data);
  58  
  59          $this->getEventManager()->trigger($event);
  60  
  61          return $event->getHydratedObject();
  62      }
  63  
  64      /**
  65       * {@inheritDoc}
  66       */
  67      public function setEventManager(EventManagerInterface $eventManager)
  68      {
  69          $eventManager->setIdentifiers(array(__CLASS__, get_class($this)));
  70  
  71          $this->eventManager = $eventManager;
  72      }
  73  
  74      /**
  75       * {@inheritDoc}
  76       */
  77      public function getEventManager()
  78      {
  79          if (null === $this->eventManager) {
  80              $this->setEventManager(new EventManager());
  81          }
  82  
  83          return $this->eventManager;
  84      }
  85  }


Generated: Wed Nov 11 20:33:01 2020 Cross-referenced by PHPXref 0.7.1