src/WellCommerce/Bundle/CmsBundle/EventListener/CmsSubscriber.php line 32

Open in your IDE?
  1. <?php
  2. declare(strict_types=0);
  3. namespace WellCommerce\Bundle\CmsBundle\EventListener;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\HttpKernel\Event\ControllerArgumentsEvent;
  6. use Symfony\Component\HttpKernel\KernelEvents;
  7. use WellCommerce\Bundle\AppBundle\Service\Metadata\Helper\MetadataHelper;
  8. use WellCommerce\Bundle\CmsBundle\Entity\Page;
  9. use WellCommerce\Bundle\CmsBundle\Request\PageRequestStorage;
  10. class CmsSubscriber implements EventSubscriberInterface
  11. {
  12.     protected MetadataHelper     $metadataHelper;
  13.     protected PageRequestStorage $pageRequestStorage;
  14.     public function __construct(MetadataHelper $metadataHelperPageRequestStorage $pageRequestStorage)
  15.     {
  16.         $this->metadataHelper     $metadataHelper;
  17.         $this->pageRequestStorage $pageRequestStorage;
  18.     }
  19.     public static function getSubscribedEvents()
  20.     {
  21.         return [
  22.             KernelEvents::CONTROLLER_ARGUMENTS => ['onControllerArguments'],
  23.         ];
  24.     }
  25.     public function onControllerArguments(ControllerArgumentsEvent $event)
  26.     {
  27.         $arguments $event->getArguments();
  28.         foreach ($arguments as $argument) {
  29.             if ($argument instanceof Page) {
  30.                 $this->pageRequestStorage->setCurrentPage($argument);
  31.                 $this->metadataHelper->setMetadata($argument->translate()->getMeta());
  32.             }
  33.         }
  34.     }
  35. }