|
3 | 3 | namespace Frosh\FroshProductCompare\Controller; |
4 | 4 |
|
5 | 5 | use Frosh\FroshProductCompare\Page\CompareProductPageLoader; |
6 | | -use Shopware\Core\Framework\Routing\Annotation\RouteScope; |
7 | 6 | use Shopware\Core\System\SalesChannel\SalesChannelContext; |
8 | 7 | use Shopware\Storefront\Controller\StorefrontController; |
9 | 8 | use Shopware\Storefront\Page\GenericPageLoaderInterface; |
10 | 9 | use Symfony\Component\HttpFoundation\Request; |
11 | 10 | use Symfony\Component\HttpFoundation\Response; |
12 | 11 | use Symfony\Component\Routing\Annotation\Route; |
13 | 12 |
|
14 | | -/** |
15 | | - * @RouteScope(scopes={"storefront"}) |
16 | | - */ |
| 13 | +#[Route(defaults: ['_routeScope' => ['storefront']])] |
17 | 14 | class CompareProductController extends StorefrontController |
18 | 15 | { |
19 | | - private CompareProductPageLoader $compareProductPageLoader; |
20 | | - |
21 | | - private GenericPageLoaderInterface $genericPageLoader; |
22 | | - |
23 | 16 | public function __construct( |
24 | | - CompareProductPageLoader $compareProductPageLoader, |
25 | | - GenericPageLoaderInterface $genericPageLoader |
| 17 | + private readonly CompareProductPageLoader $compareProductPageLoader, |
| 18 | + private readonly GenericPageLoaderInterface $genericPageLoader |
26 | 19 | ) { |
27 | | - $this->compareProductPageLoader = $compareProductPageLoader; |
28 | | - $this->genericPageLoader = $genericPageLoader; |
29 | 20 | } |
30 | 21 |
|
31 | | - /** |
32 | | - * @Route("/compare", name="frontend.compare.page", options={"seo"="false"}, methods={"GET"}) |
33 | | - */ |
| 22 | + #[Route(path: '/compare', name: 'frontend.compare.page', options: ['seo' => false], defaults: ['_httpCache' => false], methods: ['GET'])] |
34 | 23 | public function comparePage(Request $request, SalesChannelContext $context): Response |
35 | 24 | { |
36 | 25 | $page = $this->genericPageLoader->load($request, $context); |
| 26 | + |
37 | 27 | return $this->renderStorefront('@FroshProductCompare/storefront/page/compare.html.twig', compact('page')); |
38 | 28 | } |
39 | 29 |
|
40 | | - /** |
41 | | - * @Route("/compare/content", name="frontend.compare.content", options={"seo"="false"}, methods={"POST"}, defaults={"XmlHttpRequest"=true})) |
42 | | - */ |
| 30 | + #[Route(path: '/compare/content', name: 'frontend.compare.content', options: ['seo' => false], defaults: ['_httpCache' => false, 'XmlHttpRequest' => true], methods: ['POST'])] |
43 | 31 | public function comparePageContent(Request $request, SalesChannelContext $context): Response |
44 | 32 | { |
45 | | - $productIds = $request->request->get('productIds', []); |
| 33 | + $productIds = $request->get('productIds', []); |
46 | 34 |
|
47 | 35 | $page = $this->compareProductPageLoader->load($productIds, $request, $context); |
48 | 36 |
|
49 | 37 | return $this->renderStorefront('@FroshProductCompare/storefront/component/compare/content.html.twig', ['page' => $page]); |
50 | 38 | } |
51 | 39 |
|
52 | | - /** |
53 | | - * @Route("/compare/offcanvas", name="frontend.compare.offcanvas", options={"seo"="false"}, methods={"POST"}, defaults={"XmlHttpRequest"=true}) |
54 | | - */ |
| 40 | + #[Route(path: '/compare/offcanvas', name: 'frontend.compare.offcanvas', options: ['seo' => false], defaults: ['_httpCache' => false, 'XmlHttpRequest' => true], methods: ['POST'])] |
55 | 41 | public function offcanvas(Request $request, SalesChannelContext $context): Response |
56 | 42 | { |
57 | | - $productIds = $request->request->get('productIds', []); |
| 43 | + $productIds = $request->get('productIds', []); |
58 | 44 |
|
59 | 45 | $page = $this->compareProductPageLoader->loadPreview($productIds, $request, $context); |
60 | 46 |
|
|
0 commit comments