在哪里可以找到Magento 1.9的实际事件列表?

时间:2015-07-13 19:43:49

标签: magento

google和Magento Extensions开发人员指南v.1.0中的所有链接都转到http://www.magentocommerce.com/wiki/5_-_modules_and_development/0_-_module_development_in_magento/customizing_magento_using_event-observer_method,现在已经破了。

观察员事件的实际列表位于何处?

3 个答案:

答案 0 :(得分:1)

实际上还有另一种方法可以解决这个问题。

在app文件夹中找到Mage.php文件,其中包含以下方法:

public static function dispatchEvent($name, array $data = array())
{
    Varien_Profiler::start('DISPATCH EVENT:'.$name);
    $result = self::app()->dispatchEvent($name, $data);
    Varien_Profiler::stop('DISPATCH EVENT:'.$name);
    return $result;
}

正如您所看到的,这有探查器输出在任何给定页面上调度的事件。预先警告,其中有很多。也是重复的。

也就是说,如果您不想打开探查器(检查index.php),可以在那里破解日志调用并检查文件。请记住,如果这样做,请在完成后删除日志行。

除此之外,我不能做任何事情,只是建议添加其他答案的链接。

答案 1 :(得分:1)

或者,您可以在./app/code/目录上执行grep以生成自己的列表。

grep -Rsn 'Mage::dispatchEvent' . > events.txt

在这里查看答案 https://magento.stackexchange.com/questions/92169/how-to-get-magento-1-9-ces-events-list-and-which-event-is-called-when

答案 2 :(得分:-1)

信用Fabian Blechschmidt

没有所有magento事件的列表,因为大多数事件都是动态命名的。

如果你问我,了解这些关键事件(以及后果)是一个很好的起点(在缺口列表旁边):

Mage_Core_Model_Abstract扩展的每个对象都会围绕加载,保存和删除调度很多事件:

app/code/core/Mage/Core/Model/Abstract.php:255
Mage::dispatchEvent($this->_eventPrefix.'_load_before', $params);
// e.g. sales_order_load_before, checkout_cart_load_before

例如,在加载对象后添加检查

app/code/core/Mage/Core/Model/Abstract.php:267
Mage::dispatchEvent($this->_eventPrefix.'_load_after', $this->_getEventData());
// e.g. cms_page_load_after

在保存对象之前向对象添加其他数据

app/code/core/Mage/Core/Model/Abstract.php:391
Mage::dispatchEvent($this->_eventPrefix.'_save_before', $this->_getEventData());
// e.g. catalog_product_save_before

保存“父”后保存其他模型

app/code/core/Mage/Core/Model/Abstract.php:466  
Mage::dispatchEvent($this->_eventPrefix.'_save_after', $this->_getEventData());
// e.g. catalogrule_rule_save_after

在删除模型之前清理

app/code/core/Mage/Core/Model/Abstract.php:501
Mage::dispatchEvent($this->_eventPrefix.'_delete_before', $this->_getEventData());
// e.g. store_delete_before

清理,在删除模型之前 - 或者之后?你还在交易中!

app/code/core/Mage/Core/Model/Abstract.php:529
Mage::dispatchEvent($this->_eventPrefix.'_delete_after', $this->_getEventData());
// e.g. website_delete_after

如果您想确定该实体已被删除

app/code/core/Mage/Core/Model/Abstract.php:541
Mage::dispatchEvent($this->_eventPrefix.'_delete_commit_after', $this->_getEventData());
// e.g. customer_delete_commit_after

Mage_Core_Model_Resource_Db_Collection_Abstract扩展的集合也有两个通用事件:

例如:更改SQL以加载集合:

app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php:588
Mage::dispatchEvent($this->_eventPrefix.'_load_before', array(
    $this->_eventObject => $this
));
// e.g. sales_order_status_history_collection_load_before

例如:向对象添加其他数据:

app/code/core/Mage/Core/Model/Resource/Db/Collection/Abstract.php:637
Mage::dispatchEvent($this->_eventPrefix.'_load_after', array(
    $this->_eventObject => $this
));
// e.g. sales_order_shipment_collection_load_after

更多信息

https://www.nicksays.co.uk/magento-events-cheat-sheet-1-9/

来源Link