This bundle provides some classes for an automatic sitemap.xml generation.
Open a command console, enter your project directory and execute the following command to download the latest stable version of this bundle:
composer require nucleos/sitemap-bundle
Then, enable the bundle by adding it to the list of registered bundles in config/bundles.php
file of your project:
// config/bundles.php
return [
// ...
Nucleos\SitemapBundle\NucleosSitemapBundle::class => ['all' => true],
];
Create a configuration file called nucleos_sitemap.yaml
:
# config/routes/nucleos_sitemap.yaml
nucleos_sitemap:
resource: '@NucleosSitemapBundle/Resources/config/routing/sitemap.yml'
prefix: /
If you want to use symfony cache, you should define a new cache pool (PSR 6) and create an adapter to map it to a simple cache (PSR 16):
nucleos_sitemap:
cache:
service: 'sitemap.cache.simple'
framework:
cache:
pools:
sitemap.cache:
adapter: cache.app
default_lifetime: 60
services:
sitemap.cache.simple:
class: 'Symfony\Component\Cache\Psr16Cache'
arguments:
- '@sitemap.cache'
You can add static entries in your yaml config:
# config/packages/nucleos_sitemap.yaml
nucleos_sitemap:
static:
- { url: 'http://example.com', priority: 75, changefreq: 'weekly' }
If you want to create a custom sitemap, the only thing you have to do is to create a service that uses
Nucleos\SitemapBundle\Sitemap\SitemapServiceInterface
and tag the service with nucleos.sitemap
.
<service id="App\Sitemap\CustomSitemap">
<tag name="nucleos.sitemap"/>
</service>
This bundle is under the MIT license.