Magento从Mage_Core覆盖模型

Magento从Mage_Core覆盖模型,magento,model,core,overwrite,Magento,Model,Core,Overwrite,当我试图覆盖来自Mage_目录(例如Mage_目录\模型\产品\图像)的模型时,我没有问题,但当我尝试覆盖来自Mage_Core(Mage_Core \模型\文件\上传器)的模型时,它不起作用 法师的核心有什么保护吗? 我不能用观察员来代替,所以我真的必须让它工作 My config.xml: <models> <myshop> <class>Adrien_Myshop_Model</class> </mysh

当我试图覆盖来自Mage_目录(例如Mage_目录\模型\产品\图像)的模型时,我没有问题,但当我尝试覆盖来自Mage_Core(Mage_Core \模型\文件\上传器)的模型时,它不起作用

法师的核心有什么保护吗? 我不能用观察员来代替,所以我真的必须让它工作

My config.xml:

<models>
    <myshop>
        <class>Adrien_Myshop_Model</class>
    </myshop>
    <core>
        <rewrite>
            <file_uploader>Adrien_Myshop_Model_Core_File_Uploader</file_uploader>
        </rewrite>
    </core>
    <catalog>
        <rewrite>
            <product_image>Adrien_Myshop_Model_Catalog_Product_Image</product_image>
        </rewrite>
    </catalog>
</models>
我将调试日志放入Mage_Core_Model_File_Uploader::_moveFile,当我运行脚本时,我只从Mage_Core_Model_File_Uploader获取日志

但是,当我使用Catalog_Product_映像测试它时,我正确地获得了两个调试日志


谢谢你的帮助

如果对该类名的源代码进行grep,您可以看到它是通过
new
在PHP中直接调用的,因此无法重写

如果必须重写此类,则需要将其复制到本地代码池并在其中进行更改,注意在升级应用程序时需要合并新的更改

class Adrien_Myshop_Model_Core_File_Uploader extends Mage_Core_Model_File_Uploader
{
    protected function _moveFile($tmpPath, $destPath)
    {
        Mage::log("custom upload");
        return parent::_moveFile($tmpPath, $destPath);
    }

}