У меня установлен magento 1.7, и до сих пор он работал нормально.
Я импортирую продукты ежедневно. Если есть какой-либо новый производитель, я добавляю его в раскрывающемся списке атрибутов производителя.
Сегодня я добавил новую опцию «Производитель» в атрибуте back-end и пошел импортировать товары, успешно импортировавшие товары.
Но после этого я пытаюсь открыть любую страницу в админ-сайте Magento, она заканчивается сообщением об ошибке ниже
Неустранимая ошибка: невозможно переопределить конечный метод Mage_Core_Model_Abstract :: clearInstance () в /var/www/html/app/code/core/Mage/Catalog/Model/Category.php в строке 36
Линия 36
только начинается вьющейся {
для этого класса
class Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract
{ <-- this is line 36
И я проверил, Mage_Catalog_Model_Category
но нет никакого метода, определенного с именем clearInstance
. Это действительно раздражает.
К вашему сведению: я не коснулся ни одного символа кода, я просто использую сайт ADMIN для импорта товаров и добавления некоторых обязательных атрибутов
источник
Ответы:
Такое поведение обычно не происходит, если вы не изменили код Magento каким-либо образом - будь то с помощью сторонних расширений, редактирования кода ядра или общих настроек.
Тот факт, что это происходит в администраторе, до того, как какая-либо модель данных будет фактически загружена (сетка продукта и т. Д.), Будет означать, что это вызвано расширением, а не импортированными данными.
Если это происходило в сетке продукта, то это могло быть ошибочной моделью продукта в результате неудачного импорта.
Но после быстрого поиска, есть много проиндексированных результатов поиска Google в магазинах Magento с той же ошибкой. Так что это может быть в основе (хотя мы никогда не сталкивались с этим) - но я сомневаюсь.
Глядя на ядро в 1.7
Вы не должны иметь никакого переопределения
clearInstance()
метода. На самом деле, этот метод объявлен только один раз, вapp/code/core/Mage/Core/Model/Abstract.php
Я видел ошибки такого рода, возникающие, когда люди ошибочно использовали
include
переопределенный класс (в результате его дважды загружали).Ваши лучшие варианты - следовать стандартной процедуре отладки.
./app/code/local
каталог./app/code/community
каталогИ посмотри, не исчезнет ли проблема.
источник
проблема здесь с APC, отключите APC, и проблема исчезнет.
источник
идя по стандартам php для этой конкретной ошибки:
это ясно означает, что вы расширили класс,
Mage_Core_Model_Abstract
используяclass Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract
и в этом классе вы
clearInstance()
определили как функцию.Поскольку
clearInstance()
функция является конечной функцией, вам не разрешено изменять эту функцию в любом расширенном классе.что такое ваша строка 36, добавив некоторый фиктивный код выше и ниже строки, которую вы считаете строкой 36.
Я видел, как разработчики модифицировали или просматривали файлы в определенной папке, где, как и в случае с компилятором, установленным в true, файлы класса php находятся в какой-то другой папке.
источник
clearInstance
вlocal
иcommunity
пуле. Тем не менее, я удалил ключевое слово final из объявления функции, чтобы временно решить проблему, но меня раздражает, что когда я добавилfinal
ключевое слово в начало функции, все по-прежнему работает должным образом.У меня была та же проблема с последней версией PHP 5.4 в другой версии Magento (в области внешнего интерфейса), и я не мог решить эту проблему с помощью кода или каких-либо кешей. Вы проверили версию?
В этом случае стоит попробовать выполнить откат к более ранней версии.
источник
Просто испытал это и обнаружил неподтвержденную ошибку, сообщающую об очень похожих настройках.
Это похоже на ошибку с комбинацией
Два лучших решения проблемы на данный момент это:
A) Понизьте PHP до более низкой рабочей версии, возможно, 5.4.11 или ниже.
B) Отключить APC, если это невозможно, см. A. :)
источник
Я решил эту проблему для Magento 1.9, переключив способ работы PHP (в панели управления хостингом я переключил Запуск PHP как ... на Быстрое CGI-приложение). Я не имею ни малейшего представления, каковы другие последствия этого изменения. Пытаюсь выяснить это в данный момент.
источник
Я ожидал ту же проблему. Не было никакого объявления метода clearInstance где-либо вне основного пула.
Я проанализировал свои nginx access.log и error.log и заметил, что эти ошибки появляются, когда боты Google и Bing посещают мой сайт тысячу раз за несколько минут с разными URL, делая много запросов и запросов от magento. Это разрушает мой сайт.
Я думаю, что я исправил это, уменьшив мощность гусеничного робота от Google и добавив bing на панели своих веб-мастеров.
Вы можете использовать GoAccess или Request Log Analyzer, чтобы проанализировать ваш файл журнала и увидеть пользовательский агент самых популярных посетителей.
источник