src/Controller/Shop/StoreController.php line 79

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file has been created by Romain Biard.
  4.  * https://www.github.com/romain
  5.  */
  6. declare(strict_types=1);
  7. namespace App\Controller\Shop;
  8. use Psr\Log\LoggerInterface;
  9. use Symfony\Bundle\FrameworkBundle\Controller\AbstractController;
  10. use Sylius\Component\Locale\Context\LocaleContextInterface;
  11. use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface;
  12. use Symfony\Component\HttpFoundation\Request;
  13. use Symfony\Component\HttpFoundation\Response;
  14. use Symfony\Component\Routing\RouterInterface;
  15. use Symfony\Contracts\Translation\TranslatorInterface;
  16. use Twig\Environment;
  17. use App\Entity\Store\Store;
  18. class StoreController extends AbstractController
  19. {
  20.     /** @var RouterInterface */
  21.     private $router;
  22.     /** @var Environment */
  23.     private $templatingEngine;
  24.     /** @var LocaleContextInterface */
  25.     private $localeContext;
  26.     /** @var ParameterBagInterface */
  27.     private $params;
  28.     /** @var TranslatorInterface */
  29.     private $translator;
  30.     /** @var LoggerInterface */
  31.     private $logger;
  32.     /**
  33.      * @param Environment $templatingEngine
  34.      */
  35.     public function __construct(
  36.         RouterInterface $router,
  37.         Environment $templatingEngine,
  38.         LocaleContextInterface $localeContext,
  39.         ParameterBagInterface $params,
  40.         TranslatorInterface $translator,
  41.         LoggerInterface $logger
  42.     ) {
  43.         $this->router $router;
  44.         $this->templatingEngine $templatingEngine;
  45.         $this->localeContext $localeContext;
  46.         $this->params $params;
  47.         $this->translator $translator;
  48.         $this->logger $logger;
  49.     }
  50.     public function index (Request $request): Response
  51.     {
  52.         $locale $request->getLocale();
  53.         $em $this->getDoctrine()->getManager();
  54.         $storeRepository $em->getRepository(Store::class);
  55.         $stores $storeRepository->findEnabledByLocale(true$locale);
  56.         return new Response($this->templatingEngine->render('mons/stores/index.html.twig', [
  57.             'page' => [
  58.                 'title' => $this->translator->trans('sylius.stores.our_stores'),
  59.                 'breadcrumb' => $this->translator->trans('sylius.stores.our_stores'),
  60.             ],
  61.             'stores' => $stores
  62.         ]));
  63.     }
  64.     public function home (Request $request): Response
  65.     {
  66.         $locale $request->getLocale();
  67.         $em $this->getDoctrine()->getManager();
  68.         $storeRepository $em->getRepository(Store::class);
  69.         $stores $storeRepository->findEnabledByLocale(true$locale);
  70.         return new Response($this->templatingEngine->render('mons/stores/home.html.twig', [
  71.             'stores' => $stores
  72.         ]));
  73.     }
  74.     public function show (Request $requeststring $code): Response
  75.     {
  76.         $locale $request->getLocale();
  77.         $em $this->getDoctrine()->getManager();
  78.         $storeRepository $em->getRepository(Store::class);
  79.         $store $storeRepository->findOneEnabledByCode($code$locale);
  80.         return new Response($this->templatingEngine->render('mons/stores/show.html.twig', [
  81.             'page' => [
  82.                 'title' => $store->getName(),
  83.                 'breadcrumb' => $store->getNameWhenLinked(),
  84.                 'metaKeywords' => $store->getMetaKeywords(),
  85.                 'metaDescription' => $store->getMetaDescription(),
  86.             ],
  87.             'store' => $store
  88.         ]));
  89.     }
  90. }