/** * @param ServiceLocatorInterface $serviceLocator * @return Plugin\JsonLD */ public function createService(ServiceLocatorInterface $serviceLocator) { $services = $serviceLocator->getServiceLocator(); $jsonLDConfig = $services->get('ZF\\JsonLD\\JsonLDConfig'); /* @var $rendererOptions \ZF\JsonLD\RendererOptions */ $rendererOptions = $services->get('ZF\\JsonLD\\RendererOptions'); $metadataMap = $services->get('ZF\\JsonLD\\MetadataMap'); $hydrators = $metadataMap->getHydratorManager(); $serverUrlHelper = $serviceLocator->get('ServerUrl'); if (isset($jsonLDConfig['options']['use_proxy'])) { $serverUrlHelper->setUseProxy($jsonLDConfig['options']['use_proxy']); } $urlHelper = $serviceLocator->get('Url'); $helper = new Plugin\JsonLD($hydrators); $helper->setMetadataMap($metadataMap)->setServerUrlHelper($serverUrlHelper)->setUrlHelper($urlHelper); $propertyExtractor = new PropertyExtractor($serverUrlHelper, $urlHelper); $propertyCollectionExtractor = new PropertyCollectionExtractor($propertyExtractor); $helper->setPropertyCollectionExtractor($propertyCollectionExtractor); $defaultHydrator = $rendererOptions->getDefaultHydrator(); if ($defaultHydrator) { if (!$hydrators->has($defaultHydrator)) { throw new Exception\DomainException(sprintf('Cannot locate default hydrator by name "%s" via the HydratorManager', $defaultHydrator)); } $hydrator = $hydrators->get($defaultHydrator); $helper->setDefaultHydrator($hydrator); } $helper->setRenderEmbeddedEntities($rendererOptions->getRenderMemberEntities()); $helper->setRenderCollections($rendererOptions->getRenderMemberCollections()); $hydratorMap = $rendererOptions->getHydrators(); foreach ($hydratorMap as $class => $hydratorServiceName) { $helper->addHydrator($class, $hydratorServiceName); } return $helper; }
public function testFromPropertyCollectionShouldUsePropertyCollectionExtractor() { $extraction = true; $propertyCollectionExtractor = $this->getMockBuilder('ZF\\JsonLD\\Extractor\\PropertyCollectionExtractor')->disableOriginalConstructor()->getMock(); $propertyCollectionExtractor->expects($this->once())->method('extract')->will($this->returnValue($extraction)); $this->plugin->setPropertyCollectionExtractor($propertyCollectionExtractor); $propertyCollection = new PropertyCollection(); $result = $this->plugin->fromPropertyCollection($propertyCollection); $this->assertEquals($extraction, $result); }
public function setupHelpers() { if (!$this->router) { $this->setupRouter(); } $urlHelper = new UrlHelper(); $urlHelper->setRouter($this->router); $serverUrlHelper = new ServerUrlHelper(); $serverUrlHelper->setScheme('http'); $serverUrlHelper->setHost('localhost.localdomain'); $propertiesHelper = new JsonLDHelper(); $propertiesHelper->setUrlHelper($urlHelper); $propertiesHelper->setServerUrlHelper($serverUrlHelper); $propertyExtractor = new PropertyExtractor($serverUrlHelper, $urlHelper); $propertyCollectionExtractor = new PropertyCollectionExtractor($propertyExtractor); $propertiesHelper->setPropertyCollectionExtractor($propertyCollectionExtractor); $this->helpers = $helpers = new HelperPluginManager(); $helpers->setService('url', $urlHelper); $helpers->setService('serverUrl', $serverUrlHelper); $helpers->setService('JsonLD', $propertiesHelper); $this->plugins = $plugins = new ControllerPluginManager(); $plugins->setService('JsonLD', $propertiesHelper); }