vendor/presta/sitemap-bundle/Controller/SitemapController.php line 76

Open in your IDE?
  1. <?php
  2. /**
  3.  * This file is part of the PrestaSitemapBundle package.
  4.  *
  5.  * (c) PrestaConcept <www.prestaconcept.net>
  6.  *
  7.  * For the full copyright and license information, please view the LICENSE
  8.  * file that was distributed with this source code.
  9.  */
  10. namespace Presta\SitemapBundle\Controller;
  11. use Presta\SitemapBundle\Service\GeneratorInterface;
  12. use Symfony\Component\HttpFoundation\Response;
  13. use Symfony\Component\HttpKernel\Exception\NotFoundHttpException;
  14. /**
  15.  * Provides action to render sitemap files
  16.  *
  17.  * @author David Epely <depely@prestaconcept.net>
  18.  */
  19. class SitemapController
  20. {
  21.     /**
  22.      * @var GeneratorInterface
  23.      */
  24.     private $generator;
  25.     /**
  26.      * Time to live of the response in seconds
  27.      *
  28.      * @var int
  29.      */
  30.     private $ttl;
  31.     /**
  32.      * @param int $ttl
  33.      */
  34.     public function __construct(GeneratorInterface $generator$ttl)
  35.     {
  36.         $this->generator $generator;
  37.         $this->ttl $ttl;
  38.     }
  39.     /**
  40.      * list sitemaps
  41.      *
  42.      * @return Response
  43.      */
  44.     public function indexAction()
  45.     {
  46.         $sitemapindex $this->generator->fetch('root');
  47.         if (!$sitemapindex) {
  48.             throw new NotFoundHttpException('Not found');
  49.         }
  50.         $response = new Response($sitemapindex->toXml());
  51.         $response->headers->set('Content-Type''text/xml');
  52.         $response->setPublic();
  53.         $response->setClientTtl($this->ttl);
  54.         return $response;
  55.     }
  56.     /**
  57.      * list urls of a section
  58.      *
  59.      * @param string $name
  60.      *
  61.      * @return Response
  62.      */
  63.     public function sectionAction($name)
  64.     {
  65.         $section $this->generator->fetch($name);
  66.         if (!$section) {
  67.             throw new NotFoundHttpException('Not found');
  68.         }
  69.         $response = new Response($section->toXml());
  70.         $response->headers->set('Content-Type''text/xml');
  71.         $response->setPublic();
  72.         $response->setClientTtl($this->ttl);
  73.         return $response;
  74.     }
  75.     /**
  76.      * Time to live of the response in seconds
  77.      *
  78.      * @return int
  79.      * @deprecated since v2.3.0
  80.      * @codeCoverageIgnore
  81.      */
  82.     protected function getTtl()
  83.     {
  84.         @trigger_error(__METHOD__ ' method is deprecated since v2.3.0'E_USER_DEPRECATED);
  85.         return $this->ttl;
  86.     }
  87. }