我正在制作一个完整的观察者模块,以便根据用户的导航器语言更改商店视图。我的主要功能是由<controller_action_predispatch>
事件启动的。
在没有激活 FPC 的情况下一切正常。但是一旦启用了 FPC 并生成了它的缓存,Magento 就不再通过控制器(例如,不在产品视图、类别视图或主页等常规页面上)。我进行了研究,发现事件<http_response_send_before>
总是被发送,即使启用了 FPC。所以我改变了我之前的事件监听器,它在没有 FPC 的情况下也能很好地工作。
现在的问题是,当 FPC 被激活时,事件仍然被正确调度(在 Mage 函数中记录),但没有附加任何观察者。我不知道$_events
一旦启用 FPC,Magento 如何初始化 App.php 中的,但这似乎是问题的核心。我还没有在互联网上找到任何关于此的帖子,所以任何帮助将不胜感激。
PS:
- 我在 Magento EE 1.14.0.1 上工作。
- 我在相同版本的干净 Magento 上复制了相同的东西,并且“问题”也存在。
- 在我更改观察到的事件后,缓存当然完全刷新了。
- 使用自定义事件也会发生此行为。