public function testMultipleFiles() { $sitemap = new Sitemap(__DIR__ . '/sitemap_multi.xml'); $sitemap->setMaxUrls(2); for ($i = 0; $i < 20; $i++) { $sitemap->addItem('http://example.com/mylink' . $i, time()); } $sitemap->write(); $expectedFiles = [__DIR__ . '/' . 'sitemap_multi.xml', __DIR__ . '/' . 'sitemap_multi_2.xml', __DIR__ . '/' . 'sitemap_multi_3.xml', __DIR__ . '/' . 'sitemap_multi_4.xml', __DIR__ . '/' . 'sitemap_multi_5.xml', __DIR__ . '/' . 'sitemap_multi_6.xml', __DIR__ . '/' . 'sitemap_multi_7.xml', __DIR__ . '/' . 'sitemap_multi_8.xml', __DIR__ . '/' . 'sitemap_multi_9.xml', __DIR__ . '/' . 'sitemap_multi_10.xml']; foreach ($expectedFiles as $expectedFile) { $this->assertTrue(file_exists($expectedFile), "{$expectedFile} does not exist!"); unlink($expectedFile); } $urls = $sitemap->getSitemapUrls('http://example.com/'); $this->assertEquals(10, count($urls), print_r($urls, true)); $this->assertContains('http://example.com/sitemap_multi.xml', $urls); $this->assertContains('http://example.com/sitemap_multi_10.xml', $urls); }
/** * @param Sitemap $sitemap * @param array $routes * @param int $maxUrls * * @return Sitemap */ protected function generateSitemapFromRoutes(Sitemap $sitemap, array $routes, $maxUrls = self::MAX_URLS) { $sitemap->setMaxUrls($maxUrls); foreach ($routes as $routeName => $routeConfigurations) { $routeParameters = $this->getRouteParamaters($routeConfigurations); $this->output->writeln($this->getHelper('formatter')->formatBlock(['[Route]', $routeName], 'comment')); if (empty($routeParameters)) { $sitemap->addItem($this->router->generate($routeName, [], true), $routeConfigurations['lastmod'], $routeConfigurations['changefreq'], $routeConfigurations['priority']); $this->output->writeln(''); continue; } $this->addItems($sitemap, $routeName, $routeParameters, $routeConfigurations); $this->output->writeln(''); } return $sitemap; }