hydrator = $hydrator; } /** * {@inheritDoc} */ public function attach(EventManagerInterface $events, $priority = 1) { $this->listeners[] = $events->attach(HydrateEvent::EVENT_HYDRATE, array($this, 'onHydrate'), $priority); $this->listeners[] = $events->attach(ExtractEvent::EVENT_EXTRACT, array($this, 'onExtract'), $priority); } /** * Callback to be used when {@see \Zend\Stdlib\Hydrator\Aggregate\HydrateEvent::EVENT_HYDRATE} is triggered * * @param \Zend\Stdlib\Hydrator\Aggregate\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 \Zend\Stdlib\Hydrator\Aggregate\ExtractEvent::EVENT_EXTRACT} is triggered * * @param \Zend\Stdlib\Hydrator\Aggregate\ExtractEvent $event * * @return array * * @internal */ public function onExtract(ExtractEvent $event) { $data = $this->hydrator->extract($event->getExtractionObject()); $event->mergeExtractedData($data); return $data; } }