nucleos/seo-bundle

Seo components

1.4.0 2024-03-30 12:15 UTC

README

Latest Stable Version Latest Unstable Version License

Total Downloads Monthly Downloads Daily Downloads

Continuous Integration Code Coverage Type Coverage

The NucleosSeoBundle is a fork of SonataSeoBundle which respects BC. It also provides sitemap functionality of the deprecated NucleosSitemapBundle.

Installation

Open a command console, enter your project directory and execute the following command to download the latest stable version of this library:

composer require nucleos/seo-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\SeoBundle\NucleosSeoBundle::class => ['all' => true],
];

Configure the Bundle

Create a configuration file called nucleos_seo.yaml:

# config/routes/nucleos_seo.yaml

nucleos_seo:
    resource: '@NucleosSeoBundle/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_seo:
    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_seo.yaml

nucleos_seo:
    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\SeoBundle\Sitemap\SitemapServiceInterface and tag the service with nucleos_seo.sitemap.

    <service id="App\Sitemap\CustomSitemap">
      <tag name="nucleos_seo.sitemap"/>
    </service>

License

This bundle is under the MIT license.