drupal 8 – KernelEvents :: REQUEST no se activa en las páginas almacenadas en caché

Pregunta:

Estoy tratando de implementar un suscriptor de evento KernelEvents :: REQUEST para realizar alguna acción en la carga de la página.

Necesito que este evento se active independientemente de si la página solicitada existe en el caché de Drupal; parece que KernelEvents :: REQUEST no se activa cuando Drupal sirve algo del caché.

¿Hay algún evento que pueda usar para lograr esto, o debo implementar mis requisitos como algún tipo de middleware?

Respuesta:

La caché dinámica suscribe un evento con prioridad 27. Si desea que su código se ejecute antes, debe usar una prioridad> 27:

  public static function getSubscribedEvents() {
    $events = [];

    // Run after AuthenticationSubscriber (necessary for the 'user' cache
    // context; priority 300) and MaintenanceModeSubscriber (Dynamic Page Cache
    // should not be polluted by maintenance mode-specific behavior; priority
    // 30), but before ContentControllerSubscriber (updates _controller, but
    // that is a no-op when Dynamic Page Cache runs; priority 25).
    $events[KernelEvents::REQUEST][] = ['onRequest', 27];

Que ejecuta DynamicPageCacheSubscriber :: onRequest ..

Leave a Comment

Your email address will not be published. Required fields are marked *

web tasarım