nucleos/sitemap-bundle

This bundle provides some classes for an automatic sitemap.xml generation.

4.0.0 2020-06-21 14:59 UTC

This package is auto-updated.

Last update: 2020-09-21 03:24:12 UTC


README

Latest Stable Version Latest Unstable Version License

Total Downloads Monthly Downloads Daily Downloads

Continuous Integration Code Coverage Type Coverage

This bundle provides some classes for an automatic sitemap.xml generation.

Installation

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

Enable the 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],
];

Configure the Bundle

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'

Add static entries

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' }

Add a custom sitemap

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>

License

This bundle is under the MIT license.