如何在 PrestaShop 自定义模块中重置缓存和覆盖?

问题描述

我正在开发一个 PrestaShop (1.7.6) 模块,该模块使用 ps_emailsubscription 本机模块的覆盖。

但是,当我将模块升级到新版本时,我更改了覆盖功能,并且我知道当模块中存在覆盖时,此覆盖仅在安装模块期间复制到根覆盖文件夹.

有没有办法指定存在新版本的覆盖并强制更新?

另外,在同一过程中,有没有办法在升级过程中强制清除缓存?

解决方法

您必须编写“覆盖检查”例程并在新模块版本发布的 upgrade.php 文件中调用它。

如果您需要清除所有缓存,您可以调用这些核心方法:

Tools::clearSmartyCache();
Tools::clearXMLCache();
Media::clearCache();

但这可能非常耗时,具体取决于商店的缓存大小。

如果您只需要刷新覆盖,我建议您只删除 /var/cache/prod 中的 class_index.php 文件。