假设有一个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)。