Magento事件观察员没有在某些机器上工作

时间:2011-12-07 00:54:02

标签: php events magento controller mage

我似乎无法弄清楚为什么我的事件观察员可以从我的机器(和其他同事)工作,但不能从办公室的其他机器工作。

例如,我有一个侦听事件的观察者:

controller_action_postdispatch_adminhtml_process_reindexProcess

我的代码检测到该事件并运行一些代码。当我运行重新索引过程时,我的代码执行。当办公室里的某些其他机器运行重新索引时,事件不会被触发,或者我的观察者没有检测到它。

为什么计算机或用户点击管理面板中的重新索引按钮会更改事件被触发或观察的内容?

我尽可能地研究了这个问题并找到了这篇文章。

Events not firing/or observer not working in magento

但这似乎与不同的装置有关。在我的问题中,它适用于某些计算机上的给定安装而不是其他计算机,所以我觉得这篇文章并不直接相关。

这个问题让我抓狂。任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:3)

你可以尝试很多伏都教,但最终你最终必须从这里开始

#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;
}

并调试/记录事件的执行情况,以确定在某些情况下它不会触发的原因。

来自评论的具体答案

  

谢谢!我能够看到,从复选标记重新索引会调用一个不同的事件而不是简单地单击重新索引进程文本。一个痛苦的长错误调试,但一个简单的解决方案。再次感谢! -

答案 1 :(得分:0)

您确定两台计算机上的文件状态相同吗? 也许您忘记转移/签入MyFirm_MyModule.xml并且您的模块未激活?

计算机是否使用不同的操作系统?如果你在Windows上并且你的同事在Linux上,那么模块名称的大写/小写可能会出现问题。