Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/263.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Magento上的模拟是否为正常观察者发送正常事件?_Php_Magento_Dispatcher - Fatal编程技术网

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()
,注意它不调用区域的加载。

。。。我只是想说清楚。。。使用“核心/应用程序仿真”生成布局时不会调度任何事件?但该死的,这听起来很有希望,不是吗?