Added the zend framework 2 library, the path is specified in line no.26 in zend_modul...
[openemr.git] / interface / modules / zend_modules / library / Zend / Stdlib / Hydrator / Aggregate / HydratorListener.php
blob0ce5ddac03a026a979b3e5b934f35e85141ee0c5
1 <?php
2 /**
3 * Zend Framework (http://framework.zend.com/)
5 * @link http://github.com/zendframework/zf2 for the canonical source repository
6 * @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
7 * @license http://framework.zend.com/license/new-bsd New BSD License
8 */
10 namespace Zend\Stdlib\Hydrator\Aggregate;
13 use Zend\EventManager\AbstractListenerAggregate;
14 use Zend\EventManager\EventManagerInterface;
15 use Zend\Stdlib\Hydrator\HydratorInterface;
17 /**
18 * Aggregate listener wrapping around a hydrator. Listens
19 * to {@see \Zend\Stdlib\Hydrator\Aggregate::EVENT_HYDRATE} and
20 * {@see \Zend\Stdlib\Hydrator\Aggregate::EVENT_EXTRACT}
22 class HydratorListener extends AbstractListenerAggregate
24 /**
25 * @var \Zend\Stdlib\Hydrator\HydratorInterface
27 protected $hydrator;
29 /**
30 * @param \Zend\Stdlib\Hydrator\HydratorInterface $hydrator
32 public function __construct(HydratorInterface $hydrator)
34 $this->hydrator = $hydrator;
37 /**
38 * {@inheritDoc}
40 public function attach(EventManagerInterface $events, $priority = 1)
42 $this->listeners[] = $events->attach(HydrateEvent::EVENT_HYDRATE, array($this, 'onHydrate'), $priority);
43 $this->listeners[] = $events->attach(ExtractEvent::EVENT_EXTRACT, array($this, 'onExtract'), $priority);
46 /**
47 * Callback to be used when {@see \Zend\Stdlib\Hydrator\Aggregate\HydrateEvent::EVENT_HYDRATE} is triggered
49 * @param \Zend\Stdlib\Hydrator\Aggregate\HydrateEvent $event
51 * @return object
53 * @internal
55 public function onHydrate(HydrateEvent $event)
57 $object = $this->hydrator->hydrate($event->getHydrationData(), $event->getHydratedObject());
59 $event->setHydratedObject($object);
61 return $object;
64 /**
65 * Callback to be used when {@see \Zend\Stdlib\Hydrator\Aggregate\ExtractEvent::EVENT_EXTRACT} is triggered
67 * @param \Zend\Stdlib\Hydrator\Aggregate\ExtractEvent $event
69 * @return array
71 * @internal
73 public function onExtract(ExtractEvent $event)
75 $data = $this->hydrator->extract($event->getExtractionObject());
77 $event->mergeExtractedData($data);
79 return $data;