What PrestaSitemapBundle can do for you. The main goal is generate easily your sitemap.xml with several features you may need:
- sitemapindex
- google images, video, mobile and multilang urls
- respect constraints (50k items / 10mB per files)
- no database required
- optionnal caching (using LiipDoctrineCacheBundle, disabled by default)
-
Installation
//composer.json "require": { //... "presta/sitemap-bundle": "dev-master" }
//app/AppKernel.php public function registerBundles() { $bundles = array( //... new Presta\SitemapBundle\PrestaSitemapBundle(), ); }
#app/config/routing.yml PrestaSitemapBundle: resource: "@PrestaSitemapBundle/Resources/config/routing.yml" prefix: /
-
Usage
For static url there's annotation support in your routes :
/** * @Route("/", name="homepage", options={"sitemap" = true}) */
For complexe routes, create a Closure or a Service dedicated to your sitemap then add your urls :
function(SitemapPopulateEvent $event) use ($router){ //get absolute homepage url $url = $router->generate('homepage', array(), true); //add homepage url to the urlset named default $event->getGenerator()->addUrl( new UrlConcrete( $url, new \DateTime(), UrlConcrete::CHANGEFREQ_HOURLY, 1 ), 'default' ); }
-
Decorated url (images, videos, etc.)
The doc is already really short ;)
You will find the detailed documentation in the following links :