2

说我找到了这条线

Mage::dispatchEvent('catalog_product_is_salable_before', array(
    'product'   => $this
));

我如何找到被调用的方法Mage::dispatchEvent,我了解到 Magento 已经插入了其中一些Mage::dispatchEvent行,但没有为它们创建任何方法以进行定制,所以我也想知道我将如何告诉他们之间的区别

4

2 回答 2

2

在 Magento 中有调用方法的事件监听器。可以说基本上释放了一个耀斑,dispatchEvent并且有“观察者”等待这个信号,然后调用你分配的方法。

您可以使用模块的etc/config.xml.

您可以在此处阅读有关如何操作的精彩教程

如果您有兴趣了解默认情况下有哪些事件,该页面上有一个链接:Magento 事件列表(不起作用)抱歉。

于 2013-03-06T02:57:14.420 回答
1

Marshall 的回答很好地总结了事件的工作原理以及如何分配事件观察者。

但是,如果您想准确找到特定事件调度调用了哪些方法,则需要做更多的工作。

对这类事情非常方便的一个工具是n98-magerun. 它是一个命令行,可让您轻松执行许多与 Magento 相关的日常开发任务。

n98-magerun命令之一是dev:module:observer:list. config.xml它列出了在整个应用程序的所有文件中注册的每个观察者。

然后,您可以搜索/grep 您要查找的特定事件的输出,在这种情况下为catalog_product_is_salable_before.

于 2013-03-06T04:26:21.427 回答