Prestashop 1.7问题“重置”“安装时模块[模块名称]抛出的异常”,找不到class_index.php,

时间:2017-11-07 08:12:09

标签: prestashop prestashop-1.7

我在Prestashop 1.7(例如herethere)中阅读了有关“重置”或“卸载”和“安装”正在开发的模块的许多类似问题。

Basicaly我已在[prestashop project]/modules/[custom module]/override/classes/[prestashop project]/modules/[custom module]/override/controllers/front/中覆盖了文件。我的所有文件都遵守惯例:

<?php
class [Class to be overridden] extends [Class to be overridden]Core {
        ....
}
?>

[prestashop project]/override/classes/[prestashop project]/override/controllers/front/我的文件经常从[prestashop project]/modules/[custom module]/override/...复制而出现错误:例如,无法正确打开/关闭的括号{}缓冲区(源文件中不存在)班上没用。

因此,我手动删除了[prestashop project]/override/...中的错误复制文件并启动了一些“重置”操作。

我要补充一点,在手动删除后,我经常在尝试“重置”自定义模块时在Symfony日志中看到此问题:

  

安装时模块[模块名称]抛出的异常。类[覆盖文件] OverrideOriginal_remove [some char chain]不存在。

[prestashop project]/override/readme_override.txt中所述:

  

常见问题

     

问:我添加了一个覆盖文件,但PrestaShop似乎忽略了它   答:您需要触发/cache/class_index.php文件的重新生成。只需删除文件即可完成此操作。手动删除覆盖时也是如此:为了恢复默认行为,您必须删除/cache/class_index.php文件。

但Prestashop 1.7中不存在[prestashop project]/cache/class_index.php

2 个答案:

答案 0 :(得分:0)

在Prestashop 1.7中,class_index.php个文件位于: [prestashop project]/app/cache/dev[prestashop project]/app/cache/prod,如果项目设置为“dev”或“prod”模式。

答案 1 :(得分:0)

要覆盖Prestashop 1.7中的类,您必须在模块安装期间复制[module_name]/override/classes目录中的类文件,并在卸载时将其删除。

here对此进行了详细说明。