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,现在已经破了。
观察员事件的实际列表位于何处?
答案 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
答案 2 :(得分:-1)
没有所有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