最近,我修复了模块A上的一个bug,它将保持供应商的更新,并且我不能直接修改模块A。
所以我想构建一个模块B来覆盖模块A。
我要覆盖哪些文件
/etc/di.xml (Modify)
/Model/ResourceModel/Log/Grid/Collection.php (New create)
/Model/ResourceModel/Log/Log.php (Modify)
/view/adminhtml/ui_component/xxxxxxxx_listing.xml (Modify) 做这件事最好的方法是什么?谢谢。
发布于 2019-10-25 16:16:29
创建一个模块,在它的di.xml中,您可以设置<preference for>来覆盖在其他地方定义的类。像这样:
<preference for="Original\Module\Model\ResourceModel\Log\Log\Log" type="Your\Module\Model\ResourceModel\Log\Log" />我相信,当您的模块在其他模块之后加载时,di.xml上的任何更改都应该能够覆盖其他模块上的di.xml。与xxxxxxxx_listing.xml一样,如果您将它放在另一个模块中的相同路径下,它将继续并覆盖。
将原始模块作为依赖项添加到您的模块将确保在之后加载您的模块。所以你的module.xml里面应该有一个类似的部分:
<sequence>
<module name="Original_ModuleName"/>
</sequence>希望这能有所帮助。
https://stackoverflow.com/questions/58553494
复制相似问题