Tengo instalado Magento 1.7 y funcionó bien hasta ahora.
Importo productos a diario. Si hay algún fabricante nuevo, lo agrego en el atributo Fabricante desplegable.
Hoy, he agregado una nueva opción de Fabricante en el back-end de atributos y he ido a importar productos, importó productos con éxito.
Pero después de eso trato de abrir cualquier página en el sitio de administración de Magento, termina con el siguiente mensaje de error
Error fatal: no se puede anular el método final Mage_Core_Model_Abstract :: clearInstance () en /var/www/html/app/code/core/Mage/Catalog/Model/Category.php en la línea 36
Line 36
acaba de comenzar rizado {
para esta clase
class Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract
{ <-- this is line 36
Y lo he comprobado Mage_Catalog_Model_Category
pero no hay un método definido con el nombre clearInstance
. Es realmente molesto.
FYI: no toqué un solo carácter de código, solo estoy usando el sitio ADMIN para importar productos y agregar algunos atributos requeridos
fuente
Respuestas:
Este comportamiento normalmente no ocurriría a menos que haya modificado el código de Magento de alguna manera, ya sea a través de extensiones de terceros, ediciones de códigos centrales o personalizaciones generales.
El hecho de que ocurra en el administrador, antes de que se carguen los modelos de datos (cuadrícula de productos, etc.) implicaría que es causado por una extensión, no por datos importados.
Si ocurriera en la cuadrícula del producto, podría ser el modelo del producto culpable como resultado de una importación fallida.
Pero después de una búsqueda rápida, hay muchos resultados de búsqueda indexados en Google de las tiendas Magento con el mismo error. Por lo tanto, podría estar en el núcleo (aunque nunca lo hemos encontrado), pero tengo dudas.
Mirando el núcleo en 1.7
No debería tener ninguna anulación del
clearInstance()
método. De hecho, este método solo se declara una vez, enapp/code/core/Mage/Core/Model/Abstract.php
He visto errores de esta naturaleza que ocurren cuando las personas lo han usado
include
por error para una clase anulada (lo que resulta en que se cargue dos veces).Sus mejores opciones son seguir el procedimiento de depuración estándar
./app/code/local
directorio./app/code/community
directorioY vea si el problema persiste.
fuente
El problema aquí es con APC, desactive APC y el problema desaparecerá.
fuente
siguiendo los estándares de php para este error específico:
claramente significa que tienes clase extendida
Mage_Core_Model_Abstract
usandoclass Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract
y dentro de esta clase has
clearInstance()
definido como una función.Como la
clearInstance()
función es una función final, no puede modificar esta función en ninguna de las clases extendidas.cuál es exactamente su línea 36 al agregar un código ficticio arriba y debajo de la línea que usted supone es la línea 36.
Había visto desarrolladores que modificaban o buscaban archivos en una carpeta específica donde, al igual que con el compilador establecido en verdaderos archivos de clase php, estaba en otra carpeta.
fuente
clearInstance
enlocal
ycommunity
piscina. Sin embargo, eliminé la palabra clave final de la declaración de función para resolver el problema temporalmente, pero me molesta que cuando agregué lafinal
palabra clave al frente de la función, las cosas todavía funcionan correctamente.Tuve el mismo problema con la última versión de PHP 5.4 en una versión diferente de Magento (en el área de la interfaz) y no pude resolver esto por código o cualquier caché. ¿Revisaste la versión?
Si este es el caso, valdría la pena intentar volver a la versión anterior.
fuente
Acabo de experimentar esto y encontré una publicación de error no confirmada que indica una configuración muy similar.
Esto parece ser un error con la combinación de
Las dos mejores soluciones al problema en este momento parece:
UN) Reduzca la versión de PHP a una versión de trabajo inferior, posiblemente 5.4.11 o inferior.
B) Desactive APC, si no es posible, vea A. :)
fuente
Resolví estos problemas para Magento 1.9 cambiando la forma en que se ejecuta PHP (en el panel de control de alojamiento cambié Ejecutar PHP como ... a la aplicación Fast CGI). No tengo ni idea de qué otras consecuencias tiene este cambio. Tratando de resolver eso en este momento.
fuente
Esperaba el mismo problema. No hubo una declaración de método clearInstance en ningún lugar fuera del grupo principal.
Analicé mi nginx access.log y error.log y noté que estos errores aparecen cuando los robots de Google y Bing visitan mi sitio mil veces en unos minutos en diferentes URL, haciendo muchas solicitudes y consultas de magento. Estas cosas derriban mi sitio.
Supongo que lo solucioné disminuyendo la potencia del rastreador de google y bing en los paneles de sus webmasters.
Puede usar GoAccess o Request Log Analyzer para analizar su archivo de registro y ver el agente de usuario de los principales visitantes.
fuente