Php Magento事件观察程序在某些机器上不工作
我似乎无法理解为什么我的事件观察器在我的机器(和其他同事)上工作,而不是在办公室的其他机器上工作 例如,我有一个观察者监听事件:Php Magento事件观察程序在某些机器上不工作,php,events,magento,controller,mage,Php,Events,Magento,Controller,Mage,我似乎无法理解为什么我的事件观察器在我的机器(和其他同事)上工作,而不是在办公室的其他机器上工作 例如,我有一个观察者监听事件: controller_action_postdispatch_adminhtml_process_reindexProcess 我的代码检测事件并运行一些代码。当我运行重新索引过程时,我的代码会执行。当办公室中的某些其他机器运行重新索引时,要么事件没有被触发,要么我的观察者没有检测到它 为什么计算机或用户单击“管理”面板中的“重新索引”按钮会更改事件的触发或观察方式
controller_action_postdispatch_adminhtml_process_reindexProcess
我的代码检测事件并运行一些代码。当我运行重新索引过程时,我的代码会执行。当办公室中的某些其他机器运行重新索引时,要么事件没有被触发,要么我的观察者没有检测到它
为什么计算机或用户单击“管理”面板中的“重新索引”按钮会更改事件的触发或观察方式
我已经尽我所能研究了这个问题,找到了这个帖子
但这似乎与不同的装置有关。在我的问题中,它在特定计算机上的给定安装上工作,而不是在其他计算机上工作,因此我觉得这篇文章没有直接的相关性
这个问题快把我逼疯了。任何帮助都将不胜感激。你可以尝试很多伏都教,但你最终不得不从这里开始
#File: app/Mage.php
public static function dispatchEvent($name, array $data = array())
{
Varien_Profiler::start('DISPATCH EVENT:'.$name);
$result = self::app()->dispatchEvent($name, $data);
#$result = self::registry('events')->dispatch($name, $data);
Varien_Profiler::stop('DISPATCH EVENT:'.$name);
return $result;
}
并调试/记录事件的执行情况,以确定它在某些情况下不触发的原因
评论中的具体答案
谢谢!我能够看到,从复选标记重新编制索引会调用不同的事件,而不仅仅是单击重新编制索引的过程文本。这是一个很长的调试错误,但却是一个简单的解决方案。再次感谢
您确定两台计算机上的文件状态相同吗? 也许您忘记了转移/签入MyFirm_MyModule.xml,而您的模块未处于活动状态
计算机使用不同的操作系统吗?如果您使用的是Windows,而您的同事使用的是Linux,那么模块名称的大小写可能会有问题。是,放置Mage::log($name)的好方法;并简单比较两台计算机的输出。谢谢!我能够看到,从复选标记重新编制索引会调用不同的事件,而不仅仅是单击重新编制索引的过程文本。这是一个很长的调试错误,但却是一个简单的解决方案。再次感谢!