我正在尝试实现KernelEvents :: REQUEST事件订阅者,以在页面加载时执行某些操作。
无论请求的页面是否存在于Drupal缓存中,我都需要触发该事件-当Drupal提供缓存中的某些内容时,似乎KernelEvents :: REQUEST不会触发。
是否可以使用某个事件来实现这一目标,还是必须以某种中间件形式实现我的要求?
1
REQUEST事件必须被触发,否则将没有响应。恕我直言,您的ES权重很差,并且http_middleware.page_cache(或动态页面缓存)服务正在进一步阻止事件的传播,因此不会触发您的ES。
正如4k4所写,匿名用户的page_cache是一种中间件,它发生在REQUEST事件之前很久。您可以编写自己的早期中间件,但您可能需要重新考虑自己的方式。这么早到底需要发生什么?请记住,匿名页面缓存甚至可能会在其他其他外部软件或浏览器本身上进行涂漆。看看核心统计信息模块如何跟踪页面访问:使用JavaScript在用户执行服务器时对服务器执行ping操作。
—
贝尔迪尔