【发布时间】:2015-05-14 22:00:57
【问题描述】:
我正在尝试扩展 Amazon Payments Magento 模块的 Service/Login.php 模型中的 Creativestyle_AmazonPayments_Model_Service_Login 类。
我已经编写了自己的模块来修补此模块中的一些内容,但到目前为止,它们一直是块类重写和布局 XML 更改。
为了实现这一点,我在 config.xml 中添加了:
<models>
<amazonpayments>
<rewrite>
<service_login>Glambert_AmazonPayments_Model_Service_Login</service_login>
</rewrite>
</amazonpayments>
</models>
然后在 app/code/local/Glambert/AmazonPayments/Model/Service/Login.php 我扩展了这个类:
class Glambert_AmazonPayments_Model_Service_Login extends Creativestyle_AmazonPayments_Model_Service_Login {
// code
}
据我所知,这足以让 LoginController.php 在执行 Mage::getModel('amazonpayments/service_login'); 时调用这个类。但它似乎不起作用。
为了调试,我在 getGroupedClassName 方法的 app/code/core/Mage/Core/Model/Config.php 中添加了一些日志记录,以查看 $this->_xml->global->{$groupType.' s'}->{$group} 在我们得到这个模型并且重写没有出现时返回,只是这样:
Mage_Core_Model_Config_Element Object
(
[class] => Creativestyle_AmazonPayments_Model
[rewrite] => Mage_Core_Model_Config_Element Object
(
[checkout] => ThirdParty_Module_Model_AmazonPayments_Checkout
)
)
然后我想我会将我的 config.xml 中的 ... 行添加到第三方的 config.xml 中,以查看它是否将其添加到数组中然后...这也不起作用。
作为测试人员,我在 getGroupedClassName 方法中添加了这一行:
if($class == 'service_login') $config->rewrite->$class = 'Glambert_AmazonPayments_Model_Service_Login';
这确实执行了我的代码。这让我觉得config.xml文件有问题?
更新:看起来整个模块 Glaambert_AmazonPayments 无法正常工作。这是在一个开发分支上测试从 1.13.1 到 1.14 的升级,该模块在 1.13.1 上运行良好,但在 1.14 上运行良好,除了重写模型的这一变化之外没有任何变化
【问题讨论】: