如何更新类覆盖时,升级模块到新版本在prestshop


How to update class override when upgrading module to new version in Prestashop?

假设有一个0.1版本的模块

这个模块已经有覆盖应用,例如类/Cart.php。

出现了新的需求,我们对已经覆盖的classes/Cart.php进行了更改。

要应用新的更改,我们将模块版本更新到0.2,但更新后prestshop不会重新应用新的覆盖。我还尝试将升级脚本放在升级文件夹中,我确认正在执行,但旧的覆盖仍然存在。

如何在不重新安装模块的情况下应用新的覆盖?

在升级方法中,您可以依次运行uninstallalloverrides和installalloverrides,这将导致在当前版本中安装覆盖的状态。

文件升级/upgrade-1.1.0.php:

function upgrade_module_1_1_0($module)
{
    $module->uninstallOverrides();
    $module->installOverrides();
    return true;
}

我认为唯一的方法是手动删除并复制新的覆盖文件到/覆盖文件夹,检查当前覆盖的文件实际上是你的(md5 checksum p.ex)。