2

我似乎无法弄清楚为什么我的事件观察者在我的机器(和另一个同事)上工作,而不是在办公室的其他机器上工作。

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

controller_action_postdispatch_adminhtml_process_reindexProcess

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

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

我已经尽我所能研究了这个问题并找到了这篇文章。

事件未触发/观察者未在 magento 中工作

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

这个问题快把我逼疯了。任何帮助将不胜感激。

4

2 回答 2

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

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

评论的具体答案

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

于 2011-12-07T01:34:41.120 回答
0

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

计算机是否使用不同的操作系统?如果您在 Windows 上,而您的同事在 Linux 上,则可能是模块名称的大写/小写问题。

于 2011-12-07T11:35:33.233 回答