覆盖/扩展Magento抽象类?

时间:2013-04-01 07:45:03

标签: magento zend-framework override extend

我只需要在Mage_Core_Model_Abstract类中添加一个方法。

为此,在我的config.php中我有

<models>
     <mymodule>
         <class>Mynamespace_Mymodule_Model</class>
     </mymodule>
     <core>
         <rewrite>
             <mage_core_model_abstract>Mynamespace_Mymodule_Model_Abstract</mage_core_model_abstract>
         </rewrite>
     </core>
</models>

它确实不起作用..

我知道有一种方法可以超越&#34;通过将包括类文件在内的所有文件夹结构复制到我的模块中,但我想知道是否有一种方法可以使它更加花哨,在我的模块中 - 类似于上面的内容..

1 个答案:

答案 0 :(得分:13)

您只能从config.xml重写直接实例化的类。

通过工厂创建对象时使用config.xml中的各种值(例如Mage::getModel($class)Mage::getSingleton($class)Mage::helper($class)等)。 $class参数的值用于将catalog/product翻译为Mage_Catalog_Model_Product

这意味着重写(在Magento意义上)不可能用作超类的类,包括抽象类(根据定义)。

如果您想重新定义任何用作超类的类,那么您需要将文件放在包含路径的正确位置。在这种情况下,您需要在app/code/local/Mage/Core/Model/Abstract.php

中创建一个文件