Magento 无法重写Mage\u GoogleShopping\u Model\u Attribute\u Link类
我会尽量提供更多的上下文 2天来,我一直试图覆盖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
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