/** * 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 testInstance */ public function testContainersAreCached(Sitemap $service) { $service->setCache($this->cache); $service->resetContainers(); $key = $service->getCacheKeyForContainerName('test'); $this->assertFalse($this->cache->hasItem($key)); $container = $service->getContainerByName('test'); $this->assertTrue($this->cache->hasItem($key)); $service->resetContainers(); $cached = $this->cache->getItem($key); $container = $service->getContainerByName('test'); $this->assertSame($container->toArray(), $cached->toArray()); }