gpt4 book ai didi

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

转载 作者:行者123 更新时间:2023-12-03 18:20:54 25 4
gpt4 key购买 nike

我有一个监听一些事件的模块。
它在我测试过的至少十几个安装中运行良好。

在特定安装上,我安装了一个客户端,在 Magento 版本 1.4.1.1 上,它不起作用。
当我测试他的系统并手动触发事件时,例如 Mage::dispatchEvent('..') 观察者确实会听它们。

我应该调查什么?我不知道这可能是什么原因。

最佳答案

发生这种情况有几个原因

  • 您尝试监听的事件在您的 Magento 版本中不存在
  • 有人入侵了核心文件并意外删除了您正在监听的事件
  • 有人重写了一个方法
  • 您的观察者设置不正确,Magento 没有“看到”它。
  • 您的观察者设置正确,但旧配置被缓存

  • 我要调试的步骤是
  • 确保 merged global config有你的事件配置。如果它直到出现
  • 才清除您的缓存
  • 下载新版本的源代码并区分您的 app/code/core/lib/反对处女版本。输入 man diff如果您还不熟悉 diff 工具,您可以从 unix 提示符中了解它。
  • Grep(或 ack)是您尝试监听的事件的核心代码库。
  • 暂时将日志代码添加到 Mage::dispatchEventapp/Mage.php以确保您正在寻找的事件真正触发。
  • Mage::dispatchEvent 开头,按照执行路径到调用监听器的位置,看看为什么 Magento 中的代码没有调用您的方法

  • 你第一次这样做会浪费时间,所以在此过程中记下核心 Magento 系统代码中发生的想法。这样,下次您调试类似的问题时,它会更快(如果您真的想变得更好,您可以在此处、您的博客或 Magento wiki 中分享您发现的内容)

    关于debugging - 事件未触发/观察者未在 magento 中工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3924751/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com