Module Prestashop 1.7.x模块架构做得对,如何?

Module Prestashop 1.7.x模块架构做得对,如何?,module,overriding,prestashop,prestashop-1.7,Module,Overriding,Prestashop,Prestashop 1.7,我创建了两个模块,都在同一个类(Customer)上使用覆盖来添加DB额外的数据表示。第二个模块给了我一个错误,因为该类已被第一个模块重写。 两个模块都有一个“/override/classes/”路径。 我解决了合并第一个模块上的所有覆盖并将其从第二个模块中剥离出来的问题 但是,在编码使用覆盖的模块之前,正确的方法是什么 我是否应该管理所有需要的覆盖,将它们放在文件系统的“/override”文件夹中,从modules文件夹中剥离覆盖 我是否应该创建一个模块来管理所有的类覆盖,从“其他模块”文

我创建了两个模块,都在同一个类(Customer)上使用覆盖来添加DB额外的数据表示。第二个模块给了我一个错误,因为该类已被第一个模块重写。 两个模块都有一个“/override/classes/”路径。 我解决了合并第一个模块上的所有覆盖并将其从第二个模块中剥离出来的问题

但是,在编码使用覆盖的模块之前,正确的方法是什么

  • 我是否应该管理所有需要的覆盖,将它们放在文件系统的“/override”文件夹中,从modules文件夹中剥离覆盖
  • 我是否应该创建一个模块来管理所有的类覆盖,从“其他模块”文件夹中剥离覆盖
  • 或者。。。什么
  • 提前感谢您的指示。 我最好的,
    Daniele M

    事实上,一切都取决于您的需求:

    • 如果您需要相同的覆盖,但不需要相同的函数,那么这将不是问题
    • 如果您对同一个重写但对同一个函数有需求,那么您确实必须将它们组合在一个函数中
    在任何情况下,尝试使用钩子,而不是overide,这样会更干净,并且在安装过程中减少麻烦


    非常感谢你。你能给我推荐一些文档(或者更好的例子)来定义这个“客户类”\uuuu构造函数覆盖”的钩子吗<代码>self::$definition['fields']['my_custom_column']=['type'=>self::type_STRING,'lang'=>false,'required'=>true,'size'=>255,'validate'=>isString']根据经验,我建议您不要在原生客户表(或任何其他表)中创建新字段,而是使用(唯一ID-客户ID-要添加的一个或多个字段)创建自己的表。然后,您可以调用模块中的表或所有所需的钩子