Проблема Prestashop 1.7 со сбросом Исключение, вызванное модулем [имя модуля] при установке и не может найти class_index.php,

Я читал много похожих вопросов о «сбросе» или «удалении» и «установке» модуля, находящегося в разработке в Prestashop 1.7 (например, здесь или там).

В основном я переопределил файлы в [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 [некоторая цепочка символов] не существует.

Как объяснено в [prestashop project]/override/readme_override.txt:

Часто задаваемые вопросы

В: Я добавил файл переопределения, но кажется, что он игнорируется PrestaShop О: Вам нужно запустить регенерацию файла /cache/class_index.php. Это делается простым удалением файла. То же самое и при удалении переопределения вручную: чтобы восстановить поведение по умолчанию, вы должны удалить файл /cache/class_index.php.

Но [prestashop project]/cache/class_index.php не существует в Prestashop 1.7.


person nyluje    schedule 07.11.2017    source источник


Ответы (2)


В Prestashop 1.7 class_index.php файлы расположены в: [prestashop project]/app/cache/dev или [prestashop project]/app/cache/prod в зависимости от того, установлен ли проект в режиме «dev» или «prod».

person nyluje    schedule 07.11.2017

Для переопределения класса в Prestashop 1.7 вы должны скопировать файл класса в каталог [module_name]/override/classes во время установки модуля и удалить его при удалении.

Более подробно это объясняется здесь.

person FabuLoops    schedule 17.10.2018