Как убрать кэширование events_example_subscriber?

Главные вкладки

Аватар пользователя Artalek Artalek 28 октября 2021 в 11:43

Здравствуйте, у меня в событии events_example_subscriber создается кука, если есть определенный GET параметр, но он кэшируется, т.е. если удалить куку и снова перейти по ссылке с GET параметром, то он его не добавит, пока не сбросить кэш, как убрать кэширование на это событие?

services:
    events_example_subscriber:
        class: Drupal\myModule\EventSubscriber\EventsExampleSubscriber
        tags:
            - {name: event_subscriber}

сам Класс:

<?php
namespace Drupal\myModule\EventSubscriber;

use 

Symfony\Component\HttpKernel\KernelEvents;
use 
Symfony\Component\HttpKernel\Event\GetResponseEvent;
use 
Symfony\Component\EventDispatcher\EventSubscriberInterface;

class 

EventsExampleSubscriber implements EventSubscriberInterface
{
    public function 
checkForRedirection(GetResponseEvent $event)
    {
        if (
$event->getRequest()->query->get('YFI')) {
            if (!isset(
$_COOKIE['myCoockie']) | empty($_COOKIE['myCoockie'])) {
                
setcookie('myCoockie'$_SERVER['REQUEST_URI'], time() + 60 60 24 30'/');
            } elseif (isset(
$_COOKIE['myCoockie']) && !empty($_COOKIE['myCoockie'])) {
                if (
$_COOKIE['myCoockie'] !== $_SERVER['REQUEST_URI']) {
                    
setcookie('myCoockie'""time() - 3600);
                    
setcookie('myCoockie'$_SERVER['REQUEST_URI'], time() + 60 60 24 30'/');
                }
            }
        }
    }

    public static function 

getSubscribedEvents()
    {
        
$events[KernelEvents::REQUEST][] = array('checkForRedirection');
        return 
$events;
    }
}
?>

Лучший ответ

Аватар пользователя voviko voviko 28 октября 2021 в 14:14
1

попробуйте установить повышенный приоритет

<?php
    $events
[KernelEvents::REQUEST][] = array('checkForRedirection'30);
?>

Комментарии