<?php
namespace App\Controller;
use App\StaticRouteLoader;
use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
use Symfony\Component\HttpFoundation\Response;
use Symfony\Component\Routing\Annotation\Route;
class SitemapController extends AbstractController
{
/**
* @Route("/sitemap.xml", name="sitemap")
* @param \App\StaticRouteLoader $staticRouteLoader
*
* @return \Symfony\Component\HttpFoundation\Response
*/
public function sitemap(StaticRouteLoader $staticRouteLoader)
{
$routes = array_filter($staticRouteLoader->loadRoutes()->all(),
function (\Symfony\Component\Routing\Route $el) {
return $el->getDefault('sitemap') === true;
}
);
$response = new Response($this->renderView('sitemap.xml.twig', ['routes' => $routes]), 200);
$response->headers->set('Content-Type', 'text/xml');
return $response;
}
}