<?php
namespace App\EventListener;
use App\Entity\Accounts\Users;
use Symfony\Component\HttpFoundation\Cookie;
use Symfony\Component\HttpKernel\Event\ResponseEvent;
use Symfony\Component\HttpKernel\KernelEvents;
use Symfony\Component\EventDispatcher\EventSubscriberInterface;
use Doctrine\ORM\EntityManagerInterface;
class CookieDomainResponseListener implements EventSubscriberInterface
{
private $entityManager;
public function __construct(EntityManagerInterface $entityManager)
{
$this->entityManager = $entityManager;
}
public function onKernelResponse(ResponseEvent $event)
{
$request = $event->getRequest();
$response = $event->getResponse();
$host = $request->getHost();
list($name, $cookieDomain) = explode('.', $host, 2);
if ($cookieDomain) {
//$response->headers->setCookie(new Cookie('SESSID', session_id(), 0, '/', '.' . $cookieDomain));
}
}
private function getUserFromRequest($request): ?Users
{
$userId = $request->getSession()->get('user_id');
//dump($userId);
if ($userId) {
return $this->entityManager->getRepository(Users::class)->find($userId);
}
return null;
}
public static function getSubscribedEvents()
{
return [
KernelEvents::RESPONSE => 'onKernelResponse',
];
}
}