8

我只需要在 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>

实在不行。。

我知道有一种通过将包括类文件在内的所有文件夹结构复制到我的模块中来“覆盖”的方法,但是我想知道在我的模块中是否有一种方法可以使它更花哨 - 类似于上面的东西..

4

1 回答 1

13

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

config.xml在通过工厂创建对象时会使用中的各种值(例如Mage::getModel($class)Mage::getSingleton($class)Mage::helper($class)等)。参数的值$class用于转换catalog/productMage_Catalog_Model_Product.

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

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

于 2013-04-01T11:14:43.213 回答