当我尝试从Mage_Catalog覆盖模型时(例如Mage_Catalog_Model_Product_Image)我没有问题但是当我尝试从Mage_Core(Mage_Core_Model_File_Uploader)为模型做它时它不起作用。
Mage_Core上有某种保护吗? 我不能使用观察者,所以我必须让它工作。
我的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>
我的新上传者模型:
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);
}
}
我也将调试日志放入Mage_Core_Model_File_Uploader :: _ moveFile,当我运行脚本时,我只从Mage_Core_Model_File_Uploader获取日志。
然而,当我使用Catalog_Product_Image测试它时,我正确地获得了两个调试日志。
感谢您的帮助!
答案 0 :(得分:3)
如果grep该类名的源代码,您可以看到它是通过new
直接在PHP中调用的,因此无法重写。
如果必须重写此类,则需要将其复制到本地代码池并在其中进行更改,并注意到在升级时需要合并新的更改申请。