/** * Return Sitemap Service * @param ServiceLocatorInterface $serviceLocator * @return Sitemap * @throws \RuntimeException */ public function createService(ServiceLocatorInterface $serviceLocator) { $config = $serviceLocator->get('Config'); $config = isset($config['prismic']['sitemaps']) ? $config['prismic']['sitemaps'] : array(); $sitemap = new Sitemap(); /** * Cache */ if (isset($config['cache'])) { $sitemap->setCache($serviceLocator->get($config['cache'])); } if (isset($config['cache_prefix'])) { $sitemap->setCachePrefix($config['cache_prefix']); } if (isset($config['exclude'])) { $sitemap->setExclusions($config['exclude']); } /** * API and Context */ $sitemap->setPrismicApi($serviceLocator->get('Prismic\\Api')); $sitemap->setContext($serviceLocator->get('NetgluePrismic\\Context')); /** * Link Generation */ $sitemap->setLinkResolver($serviceLocator->get('NetgluePrismic\\Mvc\\LinkResolver')); $sitemap->setLinkGenerator($serviceLocator->get('NetgluePrismic\\Mvc\\LinkGenerator')); /** * Sitemap Config */ $mapConfig = isset($config['sitemaps']) ? $config['sitemaps'] : array(); $sitemap->setConfig($mapConfig); return $sitemap; }
/** * @depends testGetSetCachePrefix */ public function testGetCacheKeyForContainerNameIncludesPrefix(Sitemap $service) { $this->assertNull($service->getCachePrefix()); $this->assertSame('NetgluePrismicSitemapContainer-test', $service->getCacheKeyForContainerName('test')); $service->setCachePrefix('test'); $this->assertSame('test-NetgluePrismicSitemapContainer-test', $service->getCacheKeyForContainerName('test')); $service->setCachePrefix(''); $this->assertNull($service->getCachePrefix()); }