composer require tm/silex-sitemap-service-provider
First you have to register the ServiceProvider:
$app->register(new TM\Provider\SitemapServiceProvider());
Optional you can also set some options for the generator:
$app->register(new TM\Provider\SitemapServiceProvider(), [
'sitemap.options' => [
'charset' => 'ISO-8859-1',
'version' => '1.0',
'scheme' => 'http://www.sitemaps.org/schemas/sitemap/0.8'
]
]);
Then implement the route for the sitemap.xml with your custom logic:
$app->get('sitemap.xml', function () use ($app) {
$host = $app['request']->getSchemeAndHttpHost();
$sitemap = $app['sitemap'];
$sitemap->addEntry($host . '/', 1, 'yearly');
$entities = $app['repository.entity']->findAll(50000);
foreach ($entities as $entity) {
$entityLoc = $app['url_generator']->generate('entity', array('entity' => $entity->getId()));
$sitemap->addEntry($host . $entityLoc, 0.8, 'monthly', $entity->getLastModified());
}
return $sitemap->generate();
})
->bind('sitemap');
Please refer to CONTRIBUTING.md for information on how to contribute.
Run tests with the following command in the project directory.
composer install
./vendor/bin/behat