getEventManager()->attachAggregate(new HydratorListener($hydrator), $priority); } /** * {@inheritDoc} */ public function extract($object) { $event = new ExtractEvent($this, $object); $this->getEventManager()->trigger($event); return $event->getExtractedData(); } /** * {@inheritDoc} */ public function hydrate(array $data, $object) { $event = new HydrateEvent($this, $object, $data); $this->getEventManager()->trigger($event); return $event->getHydratedObject(); } /** * {@inheritDoc} */ public function setEventManager(EventManagerInterface $eventManager) { $eventManager->setIdentifiers(array(__CLASS__, get_class($this))); $this->eventManager = $eventManager; } /** * {@inheritDoc} */ public function getEventManager() { if (null === $this->eventManager) { $this->setEventManager(new EventManager()); } return $this->eventManager; } }