Php 在加载页面之前执行代码的最佳方式是什么
基于,在Enterprise Edition Magento中,如果您计划启用整页缓存,那么使用任何可用的控制器事件似乎都不是一个好主意。看起来,只有在对实际页面执行操作时,您才希望使用这些事件 然而,我们已经为Magento构建了一些扩展,在Php 在加载页面之前执行代码的最佳方式是什么,php,events,caching,magento,Php,Events,Caching,Magento,基于,在Enterprise Edition Magento中,如果您计划启用整页缓存,那么使用任何可用的控制器事件似乎都不是一个好主意。看起来,只有在对实际页面执行操作时,您才希望使用这些事件 然而,我们已经为Magento构建了一些扩展,在控制器\u操作\u预处理上,我们有一个观察者,从那里我们获取URL中的一个参数,如果设置正确,我们从那里做一些额外的功能。例如,我们这样做是为了让客户可以将促销代码放在电子邮件活动的URL中,当他们单击该链接时,它会附加到客户的报价中。在加载页面之前,我们
控制器\u操作\u预处理
上,我们有一个观察者,从那里我们获取URL中的一个参数,如果设置正确,我们从那里做一些额外的功能。例如,我们这样做是为了让客户可以将促销代码放在电子邮件活动的URL中,当他们单击该链接时,它会附加到客户的报价中。在加载页面之前,我们必须查找参数并执行我们的操作
但是现在有了这个完整的页面缓存,它就不能正常工作了。那么,不使用观察者而只是扩展代码可能更好吗?或者有更好的观察者来做这件事。我们尝试在一个事件之前使用HTTP send response,结果不一。也许指令会有所帮助?如果您找不到合适的事件,请请求一个,或者自己创建一个。可能扩展
企业页面缓存\u模型\u处理器
并检查其返回的内容,如果非空,则触发新事件。然后用一个观察者观看这两个事件。如果您想继续投资于controller\u action\u predispatch
事件,并在Magento框架中保存代码,您可以做几件事
JD您的代码是依赖于Magento还是可以是独立的php?想一想,如果你只是尝试记录一些东西,你可以使用总是被调用的
register\u shutdown\u函数
。这取决于Magento,我们想让它保持Magento的工作方式。我想就我的情况而言,我也可以简单地在查询sting中添加no\u缓存来阻止它缓存请求,但这似乎有点不确定,因为你必须确保创建链接的人记住这一点。