我需要重写此文件中的一个函数:
应用程序/代码/核心/Mage/Core/functions.php
问题是,它是如此核心,以至于没有与之关联的类,可能是因为 Core 甚至不是一个模块。有谁知道如何在没有类的情况下覆盖文件中的函数?
任何帮助,将不胜感激。
将文件复制到应用程序/代码/local由于以下原因,不应使用 /Mage/Core/functions.php:
整个文件必须被复制,这使得我们更难识别所做的更改。
未来的升级可能会引入新功能,除非记得复制该文件的新版本并再次实施更改,否则这些新功能将不可用。
未来的升级可能会解决我们会错过的核心错误,除非记得复制该文件的新版本并再次实施更改。
关于第 2 点和第 3 点,每次升级都可能改变事物的工作方式,这意味着重新审视我们需要做出哪些改变。在某些情况下,重写方法也是如此,但至少我们可以轻松识别这些更改对我们的影响。
如果其他人想要使用相同的技术,你会怎么做?能够识别什么是核心代码以及什么是我们的变得越来越复杂。
将我们的代码作为一个“模块”保存在一起变得更加困难,因为通过复制核心文件意味着我们已经有效地将其锁定为“保证”在我们复制原始代码的软件版本上运行。这也意味着重用这项工作要困难得多。
确定代码更改的原因要困难得多,因为它超出了我们的命名空间,即与“Example_Module”相关的所有开发都在命名空间中:
/应用程序/代码/核心/本地/示例/模块
而复制到 app/code/core/local/Mage 的代码仅表明我们已进行更改以支持未知功能等。
此外,Magento 有时会发布修复错误的补丁 - 这些补丁只会修补核心内的文件,而使您复制的文件没有补丁。
我建议您编写自己的函数来执行您想要的操作,并覆盖该函数以调用您的新函数。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)