src/App/Security/Subscriber/UpdateThemeSubscriber.php line 19

Open in your IDE?
  1. <?php declare(strict_types=1);
  2. namespace App\Security\Subscriber;
  3. use App\Service\PreferredTheme;
  4. use Symfony\Component\EventDispatcher\EventSubscriberInterface;
  5. use Symfony\Component\Security\Http\Event\LoginSuccessEvent;
  6. class UpdateThemeSubscriber implements EventSubscriberInterface
  7. {
  8.     private PreferredTheme $preferredTheme;
  9.     public function __construct(PreferredTheme $preferredTheme)
  10.     {
  11.         $this->preferredTheme $preferredTheme;
  12.     }
  13.     public function onSuccess(LoginSuccessEvent $event): void
  14.     {
  15.         $request $event->getRequest();
  16.         $response $event->getResponse();
  17.         if (null !== $response) {
  18.             $mode $this->preferredTheme->getPreferredTheme($request);
  19.             $this->preferredTheme->updatePreferredThemeCookie($response$mode);
  20.         }
  21.     }
  22.     /**
  23.      * @return array<string, array<int|string, array<int|string, int|string>|int|string>|string>
  24.      */
  25.     public static function getSubscribedEvents(): array
  26.     {
  27.         return [
  28.             LoginSuccessEvent::class => 'onSuccess',
  29.         ];
  30.     }
  31. }