J'ai installé magento 1.7 et cela a bien fonctionné jusqu'à présent.
J'importe des produits quotidiennement. S'il y a un nouveau fabricant, je l'ajoute dans l'attribut Fabricant basé sur la liste déroulante.
Aujourd'hui, j'ai ajouté une nouvelle option Fabricant dans le back-end d'attribut et je suis allé importer des produits avec succès.
Mais après cela, j'essaie d'ouvrir n'importe quelle page du site d'administration de Magento, cela se termine par un message d'erreur ci-dessous
Erreur fatale: impossible de remplacer la méthode finale Mage_Core_Model_Abstract :: clearInstance () dans /var/www/html/app/code/core/Mage/Catalog/Model/Category.php sur la ligne 36
La ligne 36
vient de commencer bouclée {
pour cette classe
class Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract
{ <-- this is line 36
Et j'ai vérifié Mage_Catalog_Model_Category
mais il n'y a pas de méthode définie avec le nomclearInstance
. C'est vraiment ennuyeux.
FYI: Je n'ai pas touché un seul caractère de code J'utilise simplement le site ADMIN pour importer des produits et ajouter certains attributs requis
la source
Réponses:
Ce comportement ne se produirait normalement que si vous avez modifié le code de Magento d'une manière ou d'une autre - que ce soit via des extensions tierces, des modifications de code de base ou des personnalisations générales.
Le fait que cela se produise dans l'administrateur, avant que les modèles de données ne soient réellement chargés (grille de produits, etc.) impliquerait qu'il soit causé par une extension - et non par des données importées.
Si cela se produisait sur la grille de produits - il pourrait s'agir du modèle de produit en cause en raison d'un échec de l'importation.
Mais après une recherche rapide, il y a beaucoup de résultats de recherche google indexés des magasins Magento avec la même erreur. Donc ça pourrait être au cœur (bien que nous ne l'ayons jamais rencontré) - mais je suis douteux.
Regarder le noyau en 1.7
Vous ne devriez pas avoir de remplacement de la
clearInstance()
méthode. En fait, cette méthode n'est déclarée qu'une seule fois, dansapp/code/core/Mage/Core/Model/Abstract.php
J'ai vu des erreurs de cette nature se produire lorsque des personnes ont utilisé
include
par erreur une classe surchargée (ce qui a entraîné son chargement deux fois).Vos meilleures options sont de suivre la procédure de débogage standard
./app/code/local
répertoire./app/code/community
répertoireEt voyez si le problème persiste.
la source
le problème ici est avec APC, désactivez APC et le problème disparaîtra.
la source
selon les normes php pour cette erreur spécifique:
cela signifie clairement que vous avez étendu la classe en
Mage_Core_Model_Abstract
utilisantclass Mage_Catalog_Model_Category extends Mage_Catalog_Model_Abstract
et au sein de cette classe, vous avez
clearInstance()
défini comme une fonction.Comme la
clearInstance()
fonction est une fonction finale, vous n'êtes pas autorisé à modifier cette fonction dans aucune des classes étendues.quelle est exactement votre ligne 36 en ajoutant du code factice au-dessus et au-dessous de la ligne que vous supposez être la ligne 36.
J'avais vu des développeurs modifier ou rechercher des fichiers dans un dossier spécifique où, comme avec le compilateur défini sur les vrais fichiers de classe php, se trouve dans un autre dossier.
la source
clearInstance
danslocal
etcommunity
pool. Cependant, j'ai supprimé le mot-clé final de la déclaration de fonction pour résoudre temporairement le problème, mais cela m'ennuie que lorsque j'ai rajouté lefinal
mot-clé à l'avant de la fonction, les choses fonctionnent toujours correctement.J'ai eu le même problème avec la dernière version de PHP 5.4 sur une autre version de Magento (dans la zone frontend) et je n'ai pas pu résoudre cela par du code ou des caches. Avez-vous vérifié la version?
Si tel est le cas, un retour à la version antérieure vaut la peine d'être essayé.
la source
Je viens de vivre cela et j'ai trouvé une publication de bogue non confirmée indiquant une configuration très similaire.
Cela semble être un bug avec la combinaison de
Actuellement, les deux meilleures solutions au problème semblent être les suivantes:
UNE) Rétrogradez PHP vers une version de travail inférieure, peut-être 5.4.11 ou inférieure.
B) Désactivez APC, si ce n'est pas possible, voir A. :)
la source
J'ai résolu ces problèmes pour Magento 1.9 en changeant la façon dont PHP s'exécute (dans le panneau de contrôle d'hébergement, j'ai choisi Exécuter PHP en tant que ... pour Fast CGI Application). Je n'ai absolument aucune idée des autres conséquences de ce changement. Essayer de comprendre cela pour le moment.
la source
Je m'attendais au même problème. Il n'y avait aucune déclaration de méthode clearInstance en dehors du pool principal.
J'ai analysé mes nginx access.log et error.log et j'ai remarqué que ces erreurs apparaissent lorsque Google et Bing bots visitent mon site mille fois en quelques minutes dans différentes URL, faisant de nombreuses demandes et requêtes depuis magento. Ces choses détruisent mon site.
Je suppose que j'ai corrigé cela en diminuant la puissance du robot de Google et de Bing sur les panneaux de leur webmaster.
Vous pouvez utiliser GoAccess ou Request Log Analyzer pour analyser votre fichier journal et voir l'agent utilisateur le plus visité .
la source