首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >模块B覆盖模块A

模块B覆盖模块A
EN

Stack Overflow用户
提问于 2019-10-25 14:45:00
回答 1查看 20关注 0票数 0

最近,我修复了模块A上的一个bug,它将保持供应商的更新,并且我不能直接修改模块A。

所以我想构建一个模块B来覆盖模块A。

我要覆盖哪些文件

代码语言:javascript
复制
/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) 

做这件事最好的方法是什么?谢谢。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2019-10-25 16:16:29

创建一个模块,在它的di.xml中,您可以设置<preference for>来覆盖在其他地方定义的类。像这样:

代码语言:javascript
复制
<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里面应该有一个类似的部分:

代码语言:javascript
复制
<sequence>
    <module name="Original_ModuleName"/>
</sequence>

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/58553494

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档