Magento 中的事件

简介:

magento的事件机制就跟dural的hook机制一样,为了更好的扩展magento。magento里面的很多操作都是有事件派送的,比如产品的保存,删除,订单的保存,等等,很多很多。

如何在自己的程序中派送事件?

事件派送很简单,如以下代码

Java代码   收藏代码
  1. Mage::dispatchEvent('checkout_onepage_controller_success_action', array('quote_item' => $item));  

如何监听事件?

可以使用 Mage::addObserver来监听事件,但一般不那样做,基本上都是在etc/config.xml只添加的。 如以下代码

Java代码   收藏代码
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <config>  
  3.     <global>  
  4.         <models>  
  5.             <boomorder>  
  6.                 <class>Boom_Order_Model</class>  
  7.             </boomorder>  
  8.         </models>  
  9.     </global>  
  10.     <frontend>  
  11.         <events>  
  12.             <checkout_onepage_controller_success_action>  
  13.                 <observers>  
  14.                     <boom_order_observer>  
  15.                         <type>singleton</type>  
  16.                         <class>boom_order_model_observer</class>  
  17.                         <method>myOrderProcess</method>  
  18.                     </boom_order_observer>  
  19.                 </observers>  
  20.             </checkout_onepage_controller_success_action>  
  21.         </events>  
  22.     </frontend>  
  23. </config>  

当checkout_onepage_controller_success_action事件派送之后,会有函数会执行,它们分别是Boom/Order/Model/ Observer.php文件里面的myOrderProcess方法。

Java代码   收藏代码
  1. <?php  
  2. class Boom_Order_Model_Observer  
  3. {  
  4.     /** 
  5.      * Event Hook: checkout_onepage_controller_success_action 
  6.      * @param $observer Varien_Event_Observer 
  7.      */  
  8.     public function myOrderProcess($observer)  
  9.     {  
  10.         Mage::log("Enter myOrderProcess");  
  11.         $order = new Mage_Sales_Model_Order();  
  12.         $incrementId = Mage::getSingleton('checkout/session')->getLastRealOrderId();  
  13.         $order->loadByIncrementId($incrementId);  
  14.         Mage::log("Exit myOrderProcess");  
  15.     }  
  16. }  

 sdfs

相关文章
|
安全
不良事件上报管理系统 (PHP+ vue2 + element + laravel8)
投诉纠纷事件:包括对医疗接待办以及医德医风投诉办录入的投诉纠纷事件进行管理的模块,包括投诉纠纷事件的输入、审批、调查、调查审批、分析、查询、统计、跟踪等功能。 院内感染事件:包括院内感染事件输入、审批、查询、统计、跟踪等功能。
114 0
不良事件上报管理系统 (PHP+ vue2 + element + laravel8)
|
存储 安全 BI
不良事件管理系统源码,PHP+ vue2+element+ laravel
不良事件上报系统通过 “事前的人员知识培训管理和制度落地促进”、“事中的事件上报和跟进处理”、 以及 “事后的原因分析和工作持续优化”,结合预存上百套已正在使用的模板,帮助医院从对护理事件、药品事件、医疗器械事件、医院感染事件、输血事件、意外事件、职业暴露事件、后勤保障事件、信息安全事件、消防事件、工程事件、质量安全事件等各类不良事件进行管理的软件。 不良事件管理的核心环节在于事件的系统化统计分析,查找根本原因,从而进行改进,因此对不良事件报告系统的统计功能要求较高,并导入现代化的质量管理工具进行科学化分析。事件的统计分析包括系统汇总保存的报告数据,根据系统提供的统计功能,可以方便作出统计报
|
JSON 小程序 前端开发
微信小程序学习实录2(下拉刷新、下拉加载更多、小程序事件、PHP后端代码、刷新无数据解决方案)
微信小程序学习实录2(下拉刷新、下拉加载更多、小程序事件、PHP后端代码、刷新无数据解决方案)
462 0
|
前端开发 数据可视化 JavaScript
ajax刷新php后台实现定时任务的执行解决方案
ajax刷新php后台实现定时任务的执行解决方案
101 0
如何关闭WordPress后台的主题、插件、版本更新通知?
由于WordPress 更新速度非常快,不论是主题 插件或是版本,每个月少说要执行个好几次,因为更新快,所以WordPress后台加入了更新通知,提醒使用者有新版本了,可以进行插件、主题或是系统更新,可是新版通常是解决旧版Bug,但很容易会产生一些未知Bug,如果你不想要冒这风险,通常可以等一个礼拜看看,没问题再行更新动作。
1081 0
php网站的定时事件
提示信息: 1.crontab    (脚本定时。) 2. php    XXX.php(注:xxx.php页面是具体要做的事情。)
680 0