我需要重写 magento 核心模型。在该核心模型类中,我只需要更改一个函数中的一行。
我的问题是,当我重写这个核心模型时,我是否应该在我的新模型类中复制其他(未更改的)方法。或者我应该只重新定义需要修改的方法。
谢谢。
最佳答案
将您的类扩展为您要重写的类,并在其中定义需要修改的方法,可以排除所有其他方法,因为对任何其他方法的调用都将仅在原始父类中运行因为范围不是私有(private)的。
尽可能的最佳实践是从新方法运行原始父方法(使用 parent::yourMethodName($args)
),并仅修改发送到父方法或从父方法返回的数据,这使得升级更加友好。如果失败,只需复制并更改新类中的原始父方法。
关于Magento 重写核心模型以改变单一功能,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15478158/