我正在尝试扩展Magento中的Customer模块,但我没有太多运气。
我有: 将一个MyModule_Customer.xml添加到etc / modules目录中,使用正确的名称和路径进行设置。 创建了一个MyModule / Customer / etc / config.xml 创建了MyModule / Customer / Model / Customer.php(从Core / Customer复制)。我在我的新课程中添加了一个Mage :: log,但它从未记录任何内容。
我不确定的事情。 我的Customer.php类声明是否扩展了Mage_Customer_Model_Customer类或Mage_Core_Model_Abstract类。我在网上看到的内容并不一致。
这是MyModule / etc / config.xml中重写部分的正确格式吗? MyModule_Customer_Model_Customer .... 或者应该在里面有另一个元素?我尝试在路径上添加,但这阻止了Magento完全工作。
编辑: local / MyModule / Customer / etc / config.xml 这实际上是Mage / Customer config.xml的副本,其中重新定义了模块并添加了重写部分
<pre>
global>
models>
customer>
rewrite>
customer>
MyModule_Customer_Model_Customer
/customer>
/rewrite>
/customer>
/models>
/global>
</pre>
但这导致Magento破裂并且没有显示任何东西。我目前最好的猜测是如上所述,但删除了最内在的客户元素。
编辑2:这是所有代码 app / etc / modules / MyModule_Customer.xml
<?xml version="1.0" encoding="UTF-8"?>
<config>
<modules>
<MyModule_Customer>
<active>true</active>
<codePool>local</codePool>
<depends>
Mage_Customer
</depends>
</MyModule_Customer>
</modules>
</config>
关于这种格式的查询 - 我看到的大多数文章都没有依赖元素,但是我已经应该尝试了它,这是有道理的。但这是对的吗?
我的本地/ MyModule / Customer / Model / Customer.php声明:
class MyModule_Customer_Model_Customer extends Mage_Customer_Model_Customer
所以,那就是一切。我在网上看到的教程表明这应该是微不足道的,所以我做错了什么? 任何帮助将非常感激。谢谢。
答案 0 :(得分:1)
我终于找到了解决方案。在扩展类中,使用require_once来引用核心类。例如。 require_once(&#39;法师/客户/型号/ Customer.php&#39);
答案 1 :(得分:0)
您不应将自己的模块命名为原始模块,在本例中为“客户”。它可以工作,但它很混乱。对于可能在您的代码上工作的Magento和其他开发人员。
覆盖Customer模型时,您需要扩展Mage_Customer_Model_Customer。在这种情况下,您只需将方法放在要重写的类中。 无需复制完整的父类。
请添加完整的config.xml:)