vendor/symfony/mercure/src/EventSubscriber/SetCookieSubscriber.php line 27
- <?php
- /*
- * This file is part of the Mercure Component project.
- *
- * (c) Kévin Dunglas <dunglas@gmail.com>
- *
- * For the full copyright and license information, please view the LICENSE
- * file that was distributed with this source code.
- */
- declare(strict_types=1);
- namespace Symfony\Component\Mercure\EventSubscriber;
- use Symfony\Component\EventDispatcher\EventSubscriberInterface;
- use Symfony\Component\HttpKernel\Event\ResponseEvent;
- use Symfony\Component\HttpKernel\KernelEvents;
- /**
- * Sets the cookies created by the Authorization helper class.
- *
- * @author Kévin Dunglas <kevin@dunglas.fr>
- */
- final class SetCookieSubscriber implements EventSubscriberInterface
- {
- public function onKernelResponse(ResponseEvent $event): void
- {
- $mainRequest = method_exists($event, 'isMainRequest') ? $event->isMainRequest() : $event->isMasterRequest(); /* @phpstan-ignore-line */
- if (
- !($mainRequest) ||
- null === $cookies = ($request = $event->getRequest())->attributes->get('_mercure_authorization_cookies')) {
- return;
- }
- $request->attributes->remove('_mercure_authorization_cookies');
- $response = $event->getResponse();
- foreach ($cookies as $cookie) {
- $response->headers->setCookie($cookie);
- }
- }
- /**
- * {@inheritdoc}
- */
- public static function getSubscribedEvents(): array
- {
- return [KernelEvents::RESPONSE => 'onKernelResponse'];
- }
- }