2024年6月2日发(作者:)

magento2 重写某个类的protected方法

Magento2中,如果我们想要重写一个类的protected方法,有

以下几个步骤:

1.创建一个自定义模块(如果没有),并在其文件中

定义一个preference节点,指向要重写的类。

例如,我们要重写MagentoCatalogModelProduct类中的

_protectFields方法,那么我们可以在自定义模块的文

件中添加以下内容:

2.创建一个新的类,继承要重写的类,并重写其protected方法。

例如,我们可以创建一个名为Product的类,继承

MagentoCatalogModelProduct类,并重写其_protectFields方法:

namespace 自定义模块重写;

class Product extends MagentoCatalogModelProduct

{

protected function

_protectFields(MagentoFrameworkDataObject $object)

{

//这里写你的逻辑代码

- 1 -

}

}

3.清除缓存并测试。

完成以上步骤后,我们可以清除Magento2的缓存,然后测试我

们的重写是否生效。如果一切正常,我们的自定义模块将会重写

MagentoCatalogModelProduct类中的_protectFields方法。

- 2 -