Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/magento/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Magento Mage\u付款\u模型\u方法\u抽象类重写_Magento_Overriding - Fatal编程技术网

Magento Mage\u付款\u模型\u方法\u抽象类重写

Magento Mage\u付款\u模型\u方法\u抽象类重写,magento,overriding,Magento,Overriding,正如标题所示,我想覆盖Mage\u Payment\u Model\u Method\u Abstract类,我知道它是Abstract类。我们可以使用本地目录轻松地重写抽象类,如app\code\local\Mage\Payment\Model\Method\abstract.php。但我想知道我还有其他选择吗?因为此选项对于不同的magento版本不安全 任何帮助都将不胜感激 谢谢“覆盖”是一种将类从Magento核心复制到本地代码中的方法。例如: app/code/core/Mage/Ru

正如标题所示,我想覆盖
Mage\u Payment\u Model\u Method\u Abstract
类,我知道它是
Abstract类
。我们可以使用本地目录轻松地重写抽象类,如
app\code\local\Mage\Payment\Model\Method\abstract.php
。但我想知道我还有其他选择吗?因为此选项对于不同的magento版本不安全

任何帮助都将不胜感激


谢谢

覆盖”是一种将类从Magento核心复制到本地代码中的方法。例如:

app/code/core/Mage/Rule/Model/Abstract.php
app/code/core/Mage/Rule/Model/Abstract.php

覆盖是指告诉Magento“
使用此类文件而不是其他类文件”
。类似,但不同于重写<代码>重写被认为是更好的做法,因为它们不太可能导致升级和扩展兼容性问题

An abstract class is never instantiated, it can never be rewritten.
如果覆盖,则需要考虑将来的升级。不能重写抽象类。重写系统之所以能够工作,是因为Magento使用工厂模式来实例化模型、块和辅助对象

另一种选择是使用传统的类重写。例如:复印件

在博客的某个地方,我读到了这个(不赞成,尽管)的例子:Copy

Mage_Shipping_Model_Carrier_Abstract

app/code/core/Mage/Shipping/Model/Carrier

不要更改类名,只需根据需要更改或添加方法即可

这是个骗局。Magento从多个位置加载一个类,app/code/local位于app/code/core


祝你好运

keyur并不是不可能的……你可以通过复制抽象类来做到这一点——抽象类永远不会被实例化,也永远不会被重写。如果你放弃,你需要考虑未来upgrades@AmitBera是的,我知道我可以通过在本地文件夹中使用复制方法来实现这一点。但我只想知道是否还有其他选项可供我使用?@slimshaddyyy假设如果我使用local folder means auto loader类重写此方法。是否在其他magento版本中创建任何问题?您可以使用传统的类重写和复制。这将允许您修改单个抽象类,但您需要将升级版本中的任何更改合并到此类中-如果您忘记这样做,可能会导致系统问题。感谢您提供宝贵的信息+1you@KeyurShah我很高兴能帮助你……)
app/code/local/Mage/Rule/Model/Abstract.php
Mage_Shipping_Model_Carrier_Abstract
app/code/local/Mage/Shipping/Model/Carrier