Magento - 覆盖/扩展Ebizmarts_SagePaySuite_Model_Api_Payment模型类

时间:2015-09-29 13:32:14

标签: magento override extends sagepay

我正在尝试覆盖/扩展Ebizmarts SagePay Suite Ebizmarts_SagePaySuite_Model_Api_Payment模型类

我的模块看起来像这样:

等/模块/ Sulman_ModifySagePay.xml

<?xml version="1.0"?>
<config>
    <modules>
        <Sulman_ModifySagePay>
            <active>true</active>
            <codePool>local</codePool>
            <version>1.0</version>
            <depends>
                <Ebizmarts_SagePaySuite />
            </depends>
        </Sulman_ModifySagePay>
    </modules>
</config>

应用程序/代码/本地/萨勒曼/ ModifySagePay的/ etc / config.xml中

<?xml version="1.0"?>
<config>
    <modules>
        <Sulman_ModifySagePay>
            <version>0.0.1</version>
        </Sulman_ModifySagePay>
    </modules>
    <global>
        <models>
            <sagepaysuite>
                <rewrite>
                    <api_payment>Sulman_ModifySagePay_Model_Api_Payment</api_payment>
                </rewrite>
            </sagepaysuite>
        </models>
    </global>
</config>

应用程序/代码/本地/萨勒曼/ ModifySagePay /型号/原料药/ Payment.php

<?php

class Sulman_ModifySagePay_Model_Api_Payment extends Ebizmarts_SagePaySuite_Model_Api_Payment {

    public function _construct(){
        Mage::log('in my construct()', null, 'Sulman.log');
    }

    public function requestPost($url, $data, $returnRaw = false) {
        Mage::log('in my requestPost()', null, 'Sulman.log');
    }
}

没有记录任何内容,这会在结帐页面上出现错误,因为:

当我检查它是否被实例化时,它返回false(如果我禁用我的模块它将返回Ebizmarts_SagePaySuite_Model_Api_Payment对象):

var_dump(Mage::getModel('sagepaysuite/api_payment'));

整个网站对此模型的其他调用也会失败。

我有点困惑,因为看起来我的重写工作正常,但它似乎无法找到我的新模型类。

任何人都有任何想法我会出错?

由于

1 个答案:

答案 0 :(得分:0)

在&lt; models&gt;&lt; / models&gt;中的 app / code / local / Sulman / ModifySagePay / etc / config.xml 中您需要定义模型所在位置的部分:


<models>
    <modifysagepay>
        <class>Sulman_ModifySagePay_Model</class>
    <modifysagepay>
</models>