gpt4 book ai didi

magento - 如何在 Magento 中覆盖驼峰命名模型文件?

转载 作者:行者123 更新时间:2023-12-02 21:56:56 25 4
gpt4 key购买 nike

我有一个运输社区模型,其中有一个我想覆盖的驼峰类/文件女巫。

原始文件/类位于app/code/community/PedroTeixeira/Correios/Model/Carrier/CorreiosMethod.php下,我想覆盖该文件的方法或整个方法app/code/local/Esmart/CorreiosImprovements/Model/Carrier/CorreiosMethod.php下的类。

原始模块配置文件中,我可以在config.xml中看到它的模型声明,如下所示:

<global>
...
<models>
<pedroteixeira_correios>
<class>PedroTeixeira_Correios_Model</class>
</pedroteixeira_correios>
</models>
...
<sales>
<shipping>
<carriers>
<pedroteixeira_correios>
<class>PedroTeixeira_Correios_Model_Carrier_CorreiosMethod</class>
</pedroteixeira_correios>
</carriers>
</shipping>
</sales>
</global>

我的模块 config.xml 中,我以这种方式声明了覆盖:

<global>
<models>
<esmart_correiosimprovements>
<class>Esmart_CorreiosImprovements_Model</class>
</esmart_correiosimprovements>

<pedroteixeira_correios>
<rewrite>
<carrier_correiosMethod>Esmart_CorreiosImprovements_Model_Carrier_CorreiosMethod</carrier_correiosMethod>
</rewrite>
</pedroteixeira_correios>
</models>
</global>

通常模型文件不是驼峰格式的,所以我想这更容易。或者我在这里遗漏了什么?

感谢任何帮助。

最佳答案

重写语法中使用的类组 ( <pedroteixeira_correios> ) 取决于模块配置中的类组声明。

重写语法中使用的类 ID ( <carrier_correiosMethod> ) 完全取决于代码中调用类的方式。对于您的示例,以下内容都将在区分大小写文件系统上实例化原始类实例:

  • pedroteixeira_correios/carrier_correiosMethod
  • pedroteixeira_correios/Carrier_correiosMethod
  • pedroteixeira_correios/carrier_CorreiosMethod
  • pedroteixeira_correios/Carrier_CorreiosMethod

在不区分大小写的文件系统上,类 ID 部分的任何大小写组合都会生成模型实例。希望扩展供应商在代码/标记中指定其类时遵循一致的模式,但您可以使用上面的列表指定多个 xpath 来处理所有排列。

关于magento - 如何在 Magento 中覆盖驼峰命名模型文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17595513/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com