tm / silex-sitemap-service-provider
Simple service provider to generate a xml-sitemap.
Installs: 12 873
Dependents: 0
Suggesters: 0
Security: 0
Stars: 4
Watchers: 3
Forks: 4
Open Issues: 1
Requires
- php: >=5.6.0
- silex/silex: ^2.0
Requires (Dev)
- beberlei/assert: ^2.0
- tm/tooly-composer-script: ^1.0
This package is auto-updated.
Last update: 2021-06-11 20:30:37 UTC
README
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