Magento事件没有解雇

时间:2014-05-27 06:00:09

标签: magento

当产品被添加到购物车时,我正试图解雇观察者,这是我的代码:

应用程序的/ etc /模块/ Mydons_Eventdemo.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Mydons_Eventdemo>
            <active>true</active>
            <codePool>local</codePool>
        </Mydons_Eventdemo>
    </modules>
</config>

应用程序/代码/本地/ Mydons / Eventdemo的/ etc / config.xml中

<?xml version="1.0"?>
<config>
    <modules>
        <Mydons_Eventdemo>
            <version>0.1.0</version>
        </Mydons_Eventdemo>
    </modules>
    <frontend>
        <events>
            <checkout_cart_product_add_after>
                <observers>
                    <Mydons_Eventdemo_Model_Observer>
                        <type>singleton</type>
                        <class>Mydons_Eventdemo_Model_Observer</class>
                        <method>Mytestmethod</method>
                    </Mydons_Eventdemo_Model_Observer>
                </observers>
            </checkout_cart_product_add_after>
        </events>
    </frontend>
</config>

app / code / local / Mydons / Eventdemo / Model / Observer.php

<?php

class Mydons_Eventdemo_Model_Observer {
    public function __construct()
    {
        echo 'hello world';
        die();
    }
    public function Mytestmethod($observer) {

        $event = $observer->getEvent();  //Fetches the current event
        $product = $event->getProduct();
        $eventmsg = "Current Event Triggered : <I>" . $event->getName() . "</I><br/> Currently Added Product : <I> " . $product->getName()."</I>";
        //Adds Custom message to shopping cart
        echo Mage::getSingleton('checkout/session')->addSuccess($eventmsg);
        //Your Custom Logic Here
        //you can use print_r($product) here to get more details
    }

}

但是当我将产品添加到购物车时,它就像往常一样运行。这里有什么不对吗?请帮忙!

更新:我检查了日志文件:system.log并得到了这些:

2014-05-27T07:17:19+00:00 ERR (3): Warning: simplexml_load_string() [<a href='function.simplexml-load-string'>function.simplexml-load-string</a>]: Entity: line 22: parser error : Premature end of data in tag config line 21  in D:\Webserver\htdocs\magento\includes\src\__default.php on line 22352
2014-05-27T07:17:19+00:00 ERR (3): Warning: simplexml_load_string() [<a href='function.simplexml-load-string'>function.simplexml-load-string</a>]:   in D:\Webserver\htdocs\magento\includes\src\__default.php on line 22352
2014-05-27T07:17:19+00:00 ERR (3): Warning: simplexml_load_string() [<a href='function.simplexml-load-string'>function.simplexml-load-string</a>]: ^  in D:\Webserver\htdocs\magento\includes\src\__default.php on line 22352
2014-05-27T07:17:19+00:00 ERR (3): Warning: simplexml_load_string() [<a href='function.simplexml-load-string'>function.simplexml-load-string</a>]: Entity: line 22: parser error : Premature end of data in tag config line 2  in D:\Webserver\htdocs\magento\includes\src\__default.php on line 22352
2014-05-27T07:17:19+00:00 ERR (3): Warning: simplexml_load_string() [<a href='function.simplexml-load-string'>function.simplexml-load-string</a>]:   in D:\Webserver\htdocs\magento\includes\src\__default.php on line 22352
2014-05-27T07:17:19+00:00 ERR (3): Warning: simplexml_load_string() [<a href='function.simplexml-load-string'>function.simplexml-load-string</a>]: ^  in D:\Webserver\htdocs\magento\includes\src\__default.php on line 22352

但我不知道它是什么。

Update2:我再次运行它并获得更清晰的日志消息:

2014-05-27T07:29:00+00:00 ERR (3): Warning: include(D:\Webserver\htdocs\magento\includes\src\Mydons_Eventdemo_Model_Observer.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory  in D:\Webserver\htdocs\magento\includes\src\Varien_Autoload.php on line 93
2014-05-27T07:29:00+00:00 ERR (3): Warning: include() [<a href='function.include'>function.include</a>]: Failed opening 'D:\Webserver\htdocs\magento\includes\src\Mydons_Eventdemo_Model_Observer.php' for inclusion (include_path='D:\Webserver\htdocs\magento\includes\src;.;D:\Webserver\php\PEAR')  in D:\Webserver\htdocs\magento\includes\src\Varien_Autoload.php on line 93

3 个答案:

答案 0 :(得分:2)

你在构造函数中有die()所以当magento创建类时,脚本停止并且根本不调用该方法。

答案 1 :(得分:1)

正如您所描述的那样&#34;包含警告&#34; ,似乎你已经启用了编译器,但它找不到合适的文件,即Mydons_Eventdemo_Model_Observer.php

尝试重新编译代码。刷新缓存,如果启用,则检查它是否正常工作

答案 2 :(得分:0)

尝试使用以下

<config>
    <modules>
        <Mydons_Eventdemo>
            <version>0.1.0</version>
        </Mydons_Eventdemo>
    </modules>
    <global>
        <events>
            <checkout_cart_product_add_after>
                <observers>
                    <Mydons_Eventdemo_Model_Observer>
                        <type>singleton</type>
                        <class>Mydons_Eventdemo_Model_Observer</class>
                        <method>Mytestmethod</method>
                    </Mydons_Eventdemo_Model_Observer>
                </observers>
            </checkout_cart_product_add_after>
        </events>
    </global>
<config>