<?php
namespace App\EventListener;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Symfony\Component\HttpFoundation\RedirectResponse;
use Symfony\Component\HttpFoundation\Request;
use Symfony\Component\Routing\Generator\UrlGeneratorInterface;
use Symfony\Component\Security\Http\Event\LogoutEvent;
class LogoutSubscriber implements EventSubscriberInterface
{
private $urlGenerator;
public function __construct(UrlGeneratorInterface $urlGenerator) {
$this->urlGenerator = $urlGenerator;
}
public static function getSubscribedEvents(): array
{
return [LogoutEvent::class => 'onLogout'];
}
public function onLogout(LogoutEvent $event)
{
$request = Request::createFromGlobals();
$clientSlugCookie = $request->cookies->get('clientSlug');
$response = new RedirectResponse(
$this->urlGenerator->generate('app_main', ['clientSlug' => $clientSlugCookie]),
RedirectResponse::HTTP_SEE_OTHER
);
$event->setResponse($response);
}
}