2017 © Pedro Peláez
 

symfony-bundle sitemap-bundle

Provides a way to generate a sitemap as well as for static and dynamic routes, which require Propel, Doctrine, etc.

image

larapulse/sitemap-bundle

Provides a way to generate a sitemap as well as for static and dynamic routes, which require Propel, Doctrine, etc.

  • Wednesday, November 29, 2017
  • by SergeyPodgornyy
  • Repository
  • 2 Watchers
  • 1 Stars
  • 12 Installations
  • PHP
  • 0 Dependents
  • 0 Suggesters
  • 0 Forks
  • 0 Open issues
  • 3 Versions
  • 0 % Grown

The README.md

SitemapBundle

Latest Version on Packagist ![Software License][ico-license] Build Status ![SensioLabs Insight][ico-sensio] SensioLabsInsight ![Coverage Status][ico-scrutinizer] Quality Score , (*1)

This Bundle provides a way to create a xml sitemap using any source you want (Doctrine, Propel, MongoDB, Faker, etc.)., (*2)

This bundle aims to generate standards compliant sitemaps. For more information about sitemaps go to sitemaps.org., (*3)

The sitemap generation part is handled by the SitemapGenerator library, this bundle eases its integration into a Symfony2 application., (*4)

Main features

  • static sitemap generation
  • dynamic sitemap generation
  • sitemap index generation
  • memory efficient
  • datasource independent
  • support for media content (currently images and videos)

Install

Via Composer, (*5)

``` bash $ composer require larapulse/sitemap-bundle, (*6)


Register the `SitemapBundle` in `app/AppKernel.php`: ```php # app/AppKernel.php public function registerBundles() { $bundles = [ // ... new Larapulse\SitemapBundle\LarapulseSitemapBundle(), ]; }

Configuration

Add the following options to app/config/config.yml file:, (*7)

larapulse_sitemap:
    base_host:         http://www.foo.com
    base_host_sitemap: http://www.foo.com
    limit:             50000

Note:, (*8)

  • The base_host will be prepended to relative urls added to the sitemap.
  • The base_host_sitemap will be prepended to the sitemap filename (used for sitemap index)
  • The limit is the number of url allowed in the same sitemap, if defined it will create a sitemap index

Routing

If you don't want to use the console to generate the sitemap, import the routes:, (*9)

larapulse_sitemap:
    resource: "@LarapulseSitemapBundle/Resources/config/routing.yml"

This will make the sitemap available from the /sitemap.xml URL., (*10)


Usage

Add this line /web/sitemap.xml* to your .gitignore to prevent tracking sitemap.xml files by version control system., (*11)

Providers

In order to support any kind of datasource, the sitemap uses providers to fetch the data., (*12)

Exemple provider:, (*13)

<?php

namespace SitemapGenerator\Provider;

use SitemapGenerator\Entity\Url;
use SitemapGenerator\Provider\ProviderInterface;
use SitemapGenerator\Sitemap\Sitemap;

class CustomProvider implements ProviderInterface
{
    public function populate(Sitemap $sitemap)
    {
        $url = new Url();
        $url->setLoc('http://www.google.de');
        $url->setChangefreq(Url::CHANGEFREQ_NEVER);
        $url->setLastmod('2012-12-19 02:28');
        $sitemap->add($url);
    }
}

All the providers implement the ProviderInterface, which define the populate() method., (*14)

Note: so they can be automatically used by the sitemap, providers have to be described in the DIC with the sitemap.provider tag:, (*15)

services:
    sitemap_custom_provider:
        class: SitemapGenerator\Provider\CustomProvider
        tags:
            -  { name: sitemap.provider }

All the services tagged as sitemap.provider will be used to generate the sitemap., (*16)

Simple provider

A provider to add static routes into the sitemap easily., (*17)

parameters:
    sitemap.simple_options:
        routes:
            - {name: homepage}
            - name: foo
              params: {foo: bar}
              lastmod: '2017-11-23'
              changefreq: monthly
              priority: 0.5
        # the following parameters are optionnal
        lastmod:        '2015-01-01'
        changefreq:     never
        priority:       0.2

services:
    sitemap_simple_provider:
        class:      SitemapGenerator\Provider\SimpleProvider
        arguments:  [ @router, %sitemap.simple_options% ]
        tags:
            -  { name: sitemap.provider }

Propel provider

A propel provider is included in the bundle. It allows to populate a sitemap with the content of a table., (*18)

Here is how you would configure the provider:, (*19)

# app/config/parameters.yml
parameters:
    sitemap.propel_options:
        model:      ACME\DemoBundle\Model\News
        # /news/{id}
        loc:        {route: news_show, params: {id: slug}}
        # the following parameters are optionnal
        filters:    ['filterByIsValid']
        lastmod:    date
        changefreq: daily
        priority:   0.2

# app/config/services.yml
services:
    sitemap_propel_provider:
        class:      SitemapGenerator\Provider\PropelProvider
        arguments:  
            - "@router"
            - "%sitemap.propel_options%"
        tags:
            -  { name: sitemap.provider }

Doctrine provider

A doctrine provider is included in the bundle. It allows to populate a sitemap with the content of a table., (*20)

Here is how you would configure the provider:, (*21)

# app/config/parameters.yml
parameters:
    sitemap.doctrine_options:
        entity:         AcmeDemoBundle:News
        # /news/{id}
        loc:            {route: news_show, params: {id: slug}}
        # the following parameters are optionnal
        query_method:   findValidQuery
        lastmod:        updatedAt
        changefreq:     daily
        priority:       0.2

# app/config/services.yml
services:
    sitemap_doctrine_provider:
        class:      SitemapGenerator\Provider\DoctrineProvider
        arguments:
            - "@doctrine.orm.entity_manager"
            - "@router"
            - "%sitemap.doctrine_options%"
        tags:
            -  { name: sitemap.provider }

Change log

Please see CHANGELOG for more information on what has changed recently., (*22)

Testing

bash $ composer test, (*23)

Contributing

Please see CONTRIBUTING and CODE_OF_CONDUCT for details., (*24)

Security

If you discover any security related issues, please email :author_email instead of using the issue tracker., (*25)

Credits

License

The MIT License (MIT). Please see License File for more information. This project was forked from sitemap-php/KPhoenSitemapBundle, (*26)

The Versions

29/11 2017

dev-master

9999999-dev

Provides a way to generate a sitemap as well as for static and dynamic routes, which require Propel, Doctrine, etc.

  Sources   Download

MIT

The Requires

 

The Development Requires

command seo sitemap symfony-bundle larapulse sitemap-bundle

29/11 2017

v1.0.1

1.0.1.0

Provides a way to generate a sitemap as well as for static and dynamic routes, which require Propel, Doctrine, etc.

  Sources   Download

MIT

The Requires

 

The Development Requires

command seo sitemap symfony-bundle larapulse sitemap-bundle

23/11 2017

v1.0.0

1.0.0.0

Provides a way to generate a sitemap as well as for static and dynamic routes, which require Propel, Doctrine, etc.

  Sources   Download

MIT

The Requires

 

The Development Requires

command seo sitemap symfony-bundle larapulse sitemap-bundle