Magento 无法重写Mage\u GoogleShopping\u Model\u Attribute\u Link类

Magento 无法重写Mage\u GoogleShopping\u Model\u Attribute\u Link类,magento,Magento,我会尽量提供更多的上下文 2天来,我一直试图覆盖Mage\u GoogleShopping\u Model\u Attribute\u Link,但我无法让Magento获取我的文件版本 Mage\u GoogleShopping\u Model\u Attribute\u Link类位于app/code/core/Mage/GoogleShopping/Model/Attribute/Link.php中 我把我的类Safoo\u Froogle\u GoogleShopping\u Model

我会尽量提供更多的上下文

2天来,我一直试图覆盖
Mage\u GoogleShopping\u Model\u Attribute\u Link
,但我无法让Magento获取我的文件版本

Mage\u GoogleShopping\u Model\u Attribute\u Link
类位于app/code/core/Mage/GoogleShopping/Model/Attribute/Link.php中

我把我的类
Safoo\u Froogle\u GoogleShopping\u Model\u Attribute\u Link
in/app/code/local/Safoo/Froogle/GoogleShopping/Model/Attribute/Link.php

然后是my config.xml:

这是两条日志语句的结果:

2011-11-01T06:57:17+00:00调试(7):谷歌购物/属性链接
2011-11-01T06:57:17+00:00调试(7):Mage\u GoogleShopping\u Model\u Attribute\u Link

因此,
Mage::getModel('googleshopping/attribute\u Link')
仍在获取
Mage\u googleshopping\u Model\u attribute\u Link

我能够重写该类的唯一方法是将Link.php文件复制到相应的
local
目录:app/code/local/Mage/GoogleShopping/Model/Attribute/Link.php,但我希望避免这样做

只是不起作用。我的助手超负荷工作。我想我应该能够覆盖这个类,就像这里所示:


有什么想法吗?

你发现了
Mage\u GoogleShopping\u Model\u Type
类中的一个bug,它阻止了你的重写被应用。根据您的调试,下面是最终被调用以实例化模型的代码

Mage::getModel('googleshopping/attribute_Link')
虽然在代码中并不是处处都强制使用,但所有类别名(
'googleshopping/attribute\u Link'
是类别名)都应该是小写的,这是一条公认的准则。由于
属性链接
中的大写字母L,当Magento查找要在重写中使用的类名时,它会搜索名为且大写字母为L的节点

<attribute_Link>Safoo_Froogle_GoogleShopping_Model_Attribute_Link</attribute_Link>
这样,您将以
Mage::getModel('googleshopping/attribute\u Link')
Mage::getModel('googleshopping/attribute\u Link')
的形式捕获实例化

作为将来的参考,在调试重写时

Mage_Core_Model_Config::getGroupedClassName
方法

app/code/core/Mage/Core/Model/Config.php 

是Magento查找类重写的位置

+!对于一个被问得很好的重写问题,大写字母“我”也没有给我写信!我想我尝试了config.xml中的大写字母L,但让我再试一次并清除缓存。这很有效。感谢您提供有关捕获模型调用和查找类重写的提示。我原以为事情会这么简单。
<googleshopping>
    <rewrite>
        <attribute_Link>Safoo_Froogle_GoogleShopping_Model_Attribute_Link</attribute_Link>
        <attribute_link>Safoo_Froogle_GoogleShopping_Model_Attribute_Link</attribute_link>
    </rewrite>
</googleshopping>
Mage_Core_Model_Config::getGroupedClassName
app/code/core/Mage/Core/Model/Config.php