src/Controller/Front/SitemapController.php line 29

Open in your IDE?
  1. <?php
  2. namespace App\Controller\Front;
  3. use App\Repository\BlogAuthorRepository;
  4. use App\Repository\BlogPostRepository;
  5. use App\Repository\CityPostRepository;
  6. use App\Repository\HearingBrandRepository;
  7. use App\Repository\HearingMakerRepository;
  8. use App\Repository\StoreRepository;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Symfony\Component\HttpFoundation\Response;
  11. use Symfony\Component\Routing\Annotation\Route;
  12. class SitemapController extends AbstractController
  13. {
  14.     /**
  15.      * @Route("/sitemap.xml", name="sitemap")
  16.      * @param BlogPostRepository $blogPostRepository
  17.      * @param HearingBrandRepository $hearingBrandRepository
  18.      * @param CityPostRepository $cityPostRepository
  19.      * @param HearingMakerRepository $hearingMakerRepository
  20.      * @param BlogAuthorRepository $blogAuthorRepository
  21.      * @param StoreRepository $storeRepository
  22.      * @return Response
  23.      */
  24.     public function displaySitemap(
  25.         BlogPostRepository $blogPostRepository,
  26.         HearingBrandRepository $hearingBrandRepository,
  27.         CityPostRepository $cityPostRepository,
  28.         HearingMakerRepository $hearingMakerRepository,
  29.         BlogAuthorRepository $blogAuthorRepository,
  30.         StoreRepository $storeRepository
  31.     )
  32.     {
  33.         $blogPosts $blogPostRepository->findBy([], ['createdAt' => 'DESC']);
  34.         $hearingBrands $hearingBrandRepository->findBy(['indexable' => true]);
  35.         $cities $cityPostRepository->findAll();
  36.         $hearingMakers $hearingMakerRepository->findAll();
  37.         $blogAuthors $blogAuthorRepository->findAll();
  38.         $stores $storeRepository->findStoresForSitemap();
  39.         $response $this->render('front_v4/mca/sitemap/sitemap.xml.twig', [
  40.             'posts' => $blogPosts,
  41.             'indexableHearingBrands' => $hearingBrands,
  42.             'cities' => $cities,
  43.             'hearingMakers' => $hearingMakers,
  44.             'blogAuthors' => $blogAuthors,
  45.             'stores' => $stores
  46.         ]);
  47.         $response->headers->set('Content-Type''xml');
  48.         return $response;
  49.     }
  50. }