Php Magento上的模拟是否为正常观察者发送正常事件?
例如,在Php Magento上的模拟是否为正常观察者发送正常事件?,php,magento,dispatcher,Php,Magento,Dispatcher,例如,在Mage\u Sales\u Model\u Order上,您有一个名为sendNewOrderEmail()的方法,该方法运行此appEmulation,并生成要嵌入到电子邮件中的paymentBlocks。 我被告知,这样做是为了模拟前端商店,并准确地能够生成所说的块 但是,在该表达式下调用的方法是否也会触发自定义模块上的观察者 谢谢 我刚刚经历了一番周折,试图找出与你所问完全相同的问题。我试图构建一个外部SSO登录。我注意到Mage_客户模块等中没有触发任何控制器事件。同样的方法应
Mage\u Sales\u Model\u Order
上,您有一个名为sendNewOrderEmail()
的方法,该方法运行此appEmulation,并生成要嵌入到电子邮件中的paymentBlocks。
我被告知,这样做是为了模拟前端商店,并准确地能够生成所说的块
但是,在该表达式下调用的方法是否也会触发自定义模块上的观察者
谢谢 我刚刚经历了一番周折,试图找出与你所问完全相同的问题。我试图构建一个外部SSO登录。我注意到Mage_客户模块等中没有触发任何控制器事件。同样的方法应该适用于您,只需确定要模拟的控制器,并确保在代码中调度相同的事件 我把我所有的研究结果都贴在这里了
现在回想起来,您可能已经用类似的方法解决了我的问题,使用这个“核心/应用程序模拟”的东西。我将不得不进一步研究它。简言之,没有。特定于区域的事件是通过动作控制器超类
preDispatch()中的app->loadArea([Area])
调用启用的;看见区域由子类Mage\u Core\u Controller\u Front\u Action
和Mage\u Adminhtml\u Controller\u Action
设置
如果在脚本执行期间计算了调度代码(例如调用Mage::dispatchEvent()
),则会调度事件。但是,如果将观察者配置为特定于区域的(例如,frontend
和adminhtml
),则除非加载该区域,否则不会分派这些事件
有关最后一点参考,请参见Mage\u Core\u Model\u App\u Emulation::startEnvironmentEmulation()
,注意它不调用区域的加载。。。。我只是想说清楚。。。使用“核心/应用程序仿真”生成布局时不会调度任何事件?但该死的,这听起来很有希望,不是吗?