/** * @param AbstractMappingEvent $event * * @throws DocumentManagerException */ public function handleLocale(AbstractMappingEvent $event) { $document = $event->getDocument(); if (!$document instanceof LocaleBehavior) { return; } $event->getAccessor()->set('locale', $this->registry->getLocaleForDocument($document)); }
/** * @param RefreshEvent $event */ public function handleRefresh(RefreshEvent $event) { $document = $event->getDocument(); $node = $this->documentRegistry->getNodeForDocument($document); $locale = $this->documentRegistry->getLocaleForDocument($document); // revert/reload the node to the persisted state $node->revert(); // rehydrate the document $hydrateEvent = new HydrateEvent($node, $locale); $hydrateEvent->setDocument($document); $this->eventDispatcher->dispatch(Events::HYDRATE, $hydrateEvent); }
/** * Return the locale for the given document. * * @param object $document * * @return string */ public function getLocale($document) { return $this->documentRegistry->getLocaleForDocument($document); }