Opencart 2: ошибка Fatal error: Cannot redeclare

Если после установки модуля или модификации на Opencart 2 вылазит ошибка Fatal error: Cannot redeclare ... - это значит, что php-функция или php-класс, который указан в ошибке, дублируется.

Вам нужно оставить только одну функцию или класс с таким названием. Все очень просто, ищите проблемный файл (контроллер или модель, скорее всего модифицированный через vqmod или ocmod), который указан в функции, в этом файле ищите функции или классы с одинаковыми названиями и если они дублируются полностью - тогда один из них удаляете, если они разные - переименовывайте и исправляйте всю цепочку обращений к этой функции или классу.

Пример ошибки:

Fatal error: Cannot redeclare ModelCatalogProduct::editList() in /home/site/public_html/www.site.com/vqmod/vqcache/vq2-admin_model_catalog_product.php on line 164

Решение ошибки:

Нужно открыть файл vqmod/vqcache/vq2-admin_model_catalog_product.php и сделать поиск "public function editList", вы найдете две функции с таким названием. Далее нужно определить: эти функции одинаковые или разные? Затем вам нужно найти в каком модификаторе добавляется дублирующая функция, для этого открываете папку vqmod/xml/ и ищите файл в котором добавляется эта функция. Когда уже нашли: если функции были одинаковые - тогда удаляете эту операцию из модификатора, если разные - переименовывайте и исправляйте цепочку обращений к этой функции в модуле.

Если такая ошибка возникает в папке system/modification/ или в system/storage/modification/ - процедура та же самая, только добавление дублирующейся функции нужно искать в модификаторе модуля ( файл с расширением *.ocmod.xml или файл install.xml ), затем удалить старый модификатор в админке и установить новый отредактированный.


Комментарии 0