Magento - 获得派遣活动的课程

时间:2015-01-29 14:20:50

标签: php magento magento-1.9

有没有办法获得在Magento中调度事件的类?

您可以使用以下代码获取正在调用的类,但是是否存在相反的函数?

$observer->getEvent()->getBlock();

1 个答案:

答案 0 :(得分:2)

可悲的是,我不认为有办法做到这一点。 Magento中的活动通过Mage::dispatchEvent()

发送

此功能的定义可在第445行的app/Mage.php

中找到
/**
 * Dispatch event
 *
 * Calls all observer callbacks registered for this event
 * and multiple observers matching event name pattern
 *
 * @param string $name
 * @param array $data
 * @return Mage_Core_Model_App
 */
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;
}

正如你所看到的那样,Magento中没有任何东西迫使一个派遣一个事件的班级对自己说些什么。

lib/Varien/Event.phplib/Varien/Event/Observer.php中,Magento中的事件/观察者模式所涉及的类中没有更多内容。

虽然有时候某个事件可能会为您提供$this作为他的数据,例如:

./app/code/core/Mage/Wishlist/Model/Wishlist.php:222:  
Mage::dispatchEvent('wishlist_item_add_after', array('wishlist' => $this));

但是在应用程序设计中没有强制它,所以你永远不会知道。