是否有全面的观察员事件清单?

Ryr*_*yre 1 magento

是否有可以收听的所有事件的综合列表?

如果此列表不存在,那么调试获取所有事件的最佳方法是什么?

Ian*_*Ian 7

你永远找不到完整的清单.但是如果你去app/Mage.php你可以在函数"dispatchEvent()"中放入一些调试代码并记录所有事件.

$params = array();
foreach (array_keys($data) as $key) {
    if (is_object($data[$key])) {
        $params[] = $key.' ('.get_class($data[$key]).')';
    } else {
        $params[] = $key.' ('.gettype($data[$key]).')';
    }
}
Mage::log('event_name:'.$name.',event_passed_keys:'.implode('|',$params),null,'events.log',true);
Run Code Online (Sandbox Code Playgroud)

然后使用一些excel巫术,您可以将它们解析为传递给它的所有事件名称和参数的列表.

如上所示,许多编译列表甚至执行grep的问题是许多事件是动态创建的.这可以让您辨别哪些事件未列出.

确保注释掉调试代码或events.log文件会在很短的时间后变得很大.