Magento:为什么Observer中的公共功能不起作用?

时间:2013-02-24 14:47:17

标签: magento

我的模块有2个文件:etc / config.xml和Model / Observer.php

的Config.xml:

<config>
    <global>
        <cache>
            <types>
                <DN_js_module module="COMP_dn_js" translate="DN Cache">
                    <label>DN Cache (JS CSS)</label>
                    <description>Refresh Javascript and CSS (DN)</description>
                    <tags>COMP_DN_JSCSS</tags>
                </DN_js_module>
            </types>
        </cache>
        <events>             
            <DN_trigger>
                <observers>
                    <comp_dncache>
                        <type>singleton</type>
                        <class>dncache/observer</class>
                        <method>setCache</method>
                    </comp_dncache>
                </observers>
            </DN_trigger>
        </events>
    </global>
</config>

Observer.php:

class COMP_DNCache_Model_Observer extends Mage_Adminhtml_CacheController
{
    public function __construct(){
    }

    public function setCache($observer){
         die('test');
    }
}

因此,config.xml为Magento中的缓存列表添加了一个额外选项。当它刷新时,我希望公共函数setCache()运行,并且(在这种情况下)显示输出:'test'

现在的问题是,setCache没有被触发,我无法进行“测试”以显示: - (

1 个答案:

答案 0 :(得分:1)

假设您在代码中调度事件dn_trigger

e.g

 Mage::dispatchEvent(
     'dn_trigger',
     array('xyz' => $xyz, )
 );

Observer.php:

class COMP_DNCache_Model_Observer
{
    public function __construct(){
    }

    public function setCache($observer){
         die('test');
    }
}