如何在Magento找到合适的活动?

clo*_*eek 11 events coding-style exploratory magento

有时在寻找方便的事件时我会做一些探索式编程...

这给了我一个充满无聊数据和传递对象名称的屏幕.除了STARTSTOP我通常不会寻找任何特定的东西来grep它,我必须依靠我的经验来确定可能的引导点.例如,在下订单时我知道某处通常有"报价",或者可以通过"付款"对象获得对订单的引用,反之亦然.

然后我必须记住删除我的标记(使用任何类型的版本时都不那么难).

您使用什么方法来查找事件?你能不修改核心代码吗?

Jos*_*osh 9

如果我正在寻找特定事件,通常我会在Mage.php中编辑dispatchEvent()并将其添加到顶部(我认为这些是日志的正确参数,但是从内存写入):

Mage::log( $name, 1, 'events.txt' );
Run Code Online (Sandbox Code Playgroud)

然后我将刷新页面,注释掉该行以防止文件中的额外事件,然后查看我的events.txt文件以查看为该页面加载触发的所有事件.

这确实是一种hacky,但我发现它有助于查找带有变量的事件作为其名称的一部分.


phi*_*kle 6

截至1.2,事件列表是在Magento Wiki上策划的.你可以在这里找到该列表:

http://www.magentocommerce.com/wiki/_media/magento_events_v1.2.0.2.xls

但是,从那时起,各种事件都被弃用了.这里有一个列表,但它只是1.4的当前列表

http://masteringmagento.com/2010/06/events-list-in-magento-community-1-4/

如果你很方便,你可以grep -R dispatchEvent在你的Magento工作目录中执行并解析调度调用的缺乏.这些是您特定版本中所有Magento事件的实际定义.

编辑2013年2月14日:

这份名单已有几年历史,不再有效.我建议您使用以下资源,因为它不仅是一个更好的答案,而且为您提供了许多寻找更好的事件挂钩的示例和来源.

https://magento.stackexchange.com/a/167/336

  • 这些类型的列表对于找到"适当的"事件并没有那么有用.前缀和后缀是变量,因此列表不解释这些值可能是什么.它也没有解释它是否会在我认为它的情况下触发,也不会包含正确的信息.不管怎么说,还是要谢谢你. (3认同)