Magento事件给出错误警告:包括(法师/模块名/模型/ Observer.php):未能打开流
问题描述:
日志: 当我点击添加到购物车,我得到这两条线的错误日志system.log:Magento事件给出错误警告:包括(法师/模块名/模型/ Observer.php):未能打开流
2015-10-16T00:27:33+00:00 ERR (3): Warning: include(Mage/Modulename/Model/Observer.php): failed to open stream: No such file or directory in /opt/lampp/htdocs/magento2/lib/Varien/Autoload.php on line 94
2015-10-16T00:27:33+00:00 ERR (3): Warning: include(): Failed opening 'Mage/Modulename/Model/Observer.php' for inclusion (include_path='/opt/lampp/htdocs/magento2/app/code/local:/opt/lampp/htdocs/magento2/app/code/community:/opt/lampp/htdocs/magento2/app/code/core:/opt/lampp/htdocs/magento2/lib:.:/opt/lampp/lib/php') in /opt/lampp/htdocs/magento2/lib/Varien/Autoload.php on line 94
这里是我的插件名为Namespace_Modulename:
文件: /应用/代码/本地/命名空间/模块名在/ etc/config.xml中
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<Namespace_Modulename>
<version>0.0.1</version>
</Namespace_Modulename>
</modules>
<!-- Configure our module's behavior in the global scope -->
<frontend>
<routers>
<modulename>
<use>standard</use>
<args>
<module>Namespace_Modulename</module>
<frontName>modulename</frontName>
</args>
</modulename>
</routers>
</frontend>
<global>
<models>
<Namespace_Modulename>Namespace_Modulename_Model</Namespace_Modulename>
</models>
<events>
<checkout_cart_product_add_after>
<observers>
<namespace_modulename_checkout_cart_product_add_after_observer>
<type>singleton</type>
<class>modulename/observer</class>
<method>my_custom_method</method>
</namespace_modulename_checkout_cart_product_add_after_observer>
</observers>
</checkout_cart_product_add_after>
</events>
</global>
</config>
文件:/应用程序/代码/本地/命名空间/ MODULENAME /型号/ Observer.php
<?php
/**
* Our class name should follow the directory structure of
* our Observer.php model, starting from the namespace,
* replacing directory separators with underscores.
* i.e. app/code/local/SmashingMagazine/
* LogProductUpdate/Model/Observer.php
*/
class Namespace_Modulename_Model_Observer
{
/**
* Magento passes a Varien_Event_Observer object as
* the first parameter of dispatched events.
*/
public function my_custom_method(Varien_Event_Observer $observer)
{
// Retrieve the product being updated from the event observer
$product = $observer->getEvent()->getProduct();
// Write a new line to var/log/product-updates.log
$name = $product->getName();
$sku = $product->getSku();
file_put_contents("/opt/lampp/htdocs/magento2/test","sdddddddss");
Mage::log(
"{$name} ({$sku}) updated",
null,
'product-updates.log'
);
}
}
文件:应用程序的/ etc /模块/ Namespace_Modulename.xml
<?xml version="1.0"?>
<config>
<modules>
<Namespace_Modulename>
<active>true</active>
<codePool>local</codePool>
</Namespace_Modulename>
</modules>
</config>
答
让你的类
请更改config.xml中的以下行从
<class>modulename/observer</class>
到
<class>Namespace_Modulename_Model_Observer</class>
答
模型的类组(或名称空间)不正确。
您在观察员中打电话给<class>modulename/observer</class>
,但modulename
未定义为班级组。
<models>
<Namespace_Modulename>Namespace_Modulename_Model</Namespace_Modulename>
</models>
应该成为
<models>
<my_unique_class_group>Namespace_Modulename_Model</my_unique_class_group>
</models>
,然后你可以从工厂使用<class>my_unique_class_group/observer</class>
答
Magento的编制启用和代码没有被重新编译 System -> Tools -> Compilation -> Run
compiation过程 和刷新缓存。
谢谢!这做到了!非常感谢 – user1735921
@ user1735921,我很高兴听到您找到您的解决方案。我刚刚查看了您的个人资料,并了解到您对ROR有着丰富的经验。您能否请我加入skype:samumaretiya,谢谢 –
通过Skype向我们发送了一个请求。 – user1735921