Magento事件(包括http_response_send_before)未启动FPC激活的观察者

时间:2015-07-03 16:31:24

标签: php magento events observers magento-fpc

我正在创建一个完整的观察者模块,以便根据用户的导航语言更改商店视图。我的主要功能是由<controller_action_predispatch>事件启动的。

所有工作都没有FPC激活。 但是一旦启用FPC并生成其缓存,Magento就不再通过控制器(例如,不在产品视图,类别视图或主页等常规页面上)。我做了我的研究,发现事件<http_response_send_before>总是被派遣,即使启用了FPC。所以我改变了我之前的事件监听器,它没有FPC也很好用。

现在的问题是,当FPC被激活时,事件仍然正确调度(在Mage函数中记录),但没有附加任何观察者。我不知道一旦FPC启用,Magento如何在App.php中初始化$_events,但它似乎是问题的核心。 我没有在互联网上找到关于这一点的帖子,所以任何帮助都会非常感激。

P.S。 :

  • 我在Magento EE 1.14.0.1上工作。
  • 我在同一版本的干净Magento上复制了同样的东西,而且“问题”也存在。
  • 当我更改观察后,缓存当然是完全刷新的 事件
  • 使用自定义事件也会发生此行为。

1 个答案:

答案 0 :(得分:0)

我在你的帖子上遇到了完全相同的问题。

启用Magento EE 1.14 FPC后,此事件;

http_response_send_before

使用干净缓存最多触发2次。之后,它永远不会再次触发和/或您指定的方法被缓存。经过对其他事件的大量测试后,我发现了;

controller_action_predispatch

随着FPC一直开火。将你观察到的事件交换到这一点,所有这一切都应该适合这个世界。

最佳, 汤姆