在Magento中配置扩展模块

时间:2014-07-08 10:40:56

标签: php magento

我正在尝试扩展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

所以,那就是一切。我在网上看到的教程表明这应该是微不足道的,所以我做错了什么? 任何帮助将非常感激。谢谢。

2 个答案:

答案 0 :(得分:1)

我终于找到了解决方案。在扩展类中,使用require_once来引用核心类。例如。 require_once(&#39;法师/客户/型号/ Customer.php&#39);

答案 1 :(得分:0)

您不应将自己的模块命名为原始模块,在本例中为“客户”。它可以工作,但它很混乱。对于可能在您的代码上工作的Magento和其他开发人员。

覆盖Customer模型时,您需要扩展Mage_Customer_Model_Customer。在这种情况下,您只需将方法放在要重写的类中。 无需复制完整的父类。

请添加完整的config.xml:)