Skip to content
This repository has been archived by the owner on Jun 8, 2021. It is now read-only.

tommy-muehle/silex-sitemap-service-provider

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

silex-sitemap-service-provider

Build Status Latest Stable Version License Issues Total Downloads

The provider supports both major Versions of Silex.

Installation

For applications based on Silex >= 2.0.0:

composer require tm/silex-sitemap-service-provider ^4.0

If you use Silex 1.3.x or lower in your application:

composer require tm/silex-sitemap-service-provider ^3.0

Example Basic Usage

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');

Contributing

Please refer to CONTRIBUTING.md for information on how to contribute.

Development

Run tests with the following command in the project directory.

composer install
./vendor/bin/behat