La clé de registre de mage «_singleton / weee / observer» existe déjà


13

Lorsque j'essaie d'ajouter ou de modifier un produit, je reçois l'erreur suivante:

Mage registry key "_singleton/weee/observer" already exists
Trace:
#0 app/Mage.php(222): Mage::throwException('Mage registry k...')
#1 app/Mage.php(476): Mage::register('_singleton/weee...', false)
#2 app/code/core/Mage/Core/Model/App.php(1316): Mage::getSingleton('weee/observer')
#3 app/Mage.php(447): Mage_Core_Model_App->dispatchEvent('adminhtml_catal...', Array)
#4 app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tab/Attributes.php(143): Mage::dispatchEvent('adminhtml_catal...', Array)
#5 app/code/core/Mage/Adminhtml/Block/Widget/Form.php(144): Mage_Adminhtml_Block_Catalog_Product_Edit_Tab_Attributes->_prepareForm()
#6 app/code/core/Mage/Core/Block/Abstract.php(862): Mage_Adminhtml_Block_Widget_Form->_beforeToHtml()
#7 app/code/core/Mage/Adminhtml/Block/Catalog/Product/Edit/Tabs.php(79): Mage_Core_Block_Abstract->toHtml()
#8 app/code/core/Mage/Core/Block/Abstract.php(238): Mage_Adminhtml_Block_Catalog_Product_Edit_Tabs->_prepareLayout()
#9 app/code/core/Mage/Core/Model/Layout.php(456): Mage_Core_Block_Abstract->setLayout(Object(Mage_Core_Model_Layout))
#10 app/code/core/Mage/Core/Model/Layout.php(472): Mage_Core_Model_Layout->createBlock('adminhtml/catal...', 'product_tabs')
#11 app/code/core/Mage/Core/Model/Layout.php(239): Mage_Core_Model_Layout->addBlock('adminhtml/catal...', 'product_tabs')
#12 app/code/core/Mage/Core/Model/Layout.php(205): Mage_Core_Model_Layout->_generateBlock(Object(Mage_Core_Model_Layout_Element), Object(Mage_Core_Model_Layout_Element))
#13 app/code/core/Mage/Core/Model/Layout.php(210): Mage_Core_Model_Layout->generateBlocks(Object(Mage_Core_Model_Layout_Element))
#14 app/code/core/Mage/Core/Controller/Varien/Action.php(344): Mage_Core_Model_Layout->generateBlocks()
#15 app/code/core/Mage/Core/Controller/Varien/Action.php(269): Mage_Core_Controller_Varien_Action->generateLayoutBlocks()
#16 app/code/core/Mage/Adminhtml/Controller/Action.php(275): Mage_Core_Controller_Varien_Action->loadLayout(Array, true, true)
#17 app/code/core/Mage/Adminhtml/controllers/Catalog/ProductController.php(207): Mage_Adminhtml_Controller_Action->loadLayout(Array)
#18 app/code/core/Mage/Core/Controller/Varien/Action.php(419): Mage_Adminhtml_Catalog_ProductController->newAction()
#19 app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(250): Mage_Core_Controller_Varien_Action->dispatch('new')
#20 app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#21 app/code/core/Mage/Core/Model/App.php(354): Mage_Core_Controller_Varien_Front->dispatch()
#22 app/Mage.php(683): Mage_Core_Model_App->run(Array)
#23 index.php(124): Mage::run('catalog', 'website')
#24 {main}

Magento ver. 1.7.0.0 Le compilateur a désactivé l'index reconstruit du cache effacé, aucune mise à jour ou nouvelle extension n'a été installée, il a juste cessé de fonctionner

Toute aide serait appréciée!


1
D'après ma compréhension, cela est dû au cache, êtes-vous sûr qu'il est effacé? Comment l'avez-vous effacé?
Peter O'Callaghan

J'ai utilisé la gestion du cache sous Système - Flush Magento Cache et Flush Cache Storage. Existe-t-il un moyen de vérifier si le cache a été vidé?
littleredsunshine

En supposant que vous utilisez un cache basé sur des fichiers, vérifiez qu'il y a quelque chose dans le var/cacherépertoire, s'il y en a, supprimez tout dans le dossier.
Peter O'Callaghan

J'ai essayé, toujours des erreurs. Tout en haut de l'écran, il y a aussi une référence au nom de site Linux 3.8.0-41-generic # 60 ~ precise1-Ubuntu SMP ven 16 mai 00:18:00 UTC 2014 x86_64 Merci pour vos réponses rapides et votre aide!
littleredsunshine

Réponses:


16

Cette erreur arrive en raison de valeurs vides dans le Registre.

pour l'empêcher, vous devez désactiver le mode «compilation», et si vous voulez l'utiliser, le relancer.

php -f shell/compiler.php disable
php -f shell/compiler.php clear
php -f shell/compiler.php compile

J'ai essayé d'effacer et de désactiver le compilateur et d'obtenir toujours l'erreur. Toute autre idée serait appréciée.
littleredsunshine

Exécuter la compilation fonctionne !!!
MageDev

Abhishek tu es mon héros! Ce message a résolu un problème avec lequel j'ai passé des heures avec une erreur similaire au message ci-dessus. La compilation à partir du panneau d'administration provoque une erreur. Mais l'exécution à partir de la ligne de commande a bien fonctionné :)
MagentoMac

4

Vérifiez si le code xml de votre observateur d'événements dans votre module config.xmlest correct.

Cela devrait être quelque chose comme ceci:

<events>
    <event_name_that_you_are_working_on>
        <observers>
            <some_unique_identifier>
                <type>singleton</type>
                <class>YourNamespace_YourModule_Model_Observer</class>
                <method>functionNameInYourObserver</method>
            </some_unique_identifier>
        </observers>
    </event_name_that_you_are_working_on>
</events>

J'ai eu une fois ce genre d'erreur parce que j'utilisais modulename/observerun nœud de classe interne. L'utilisation du nom de classe complet ( YourNamespace_YourModule_Model_Observer) a résolu l'erreur pour moi.

Dans le code XML de l'observateur d'événements de votre module, vous pouvez utiliser classcomme ci-dessous:

<class>yourmodule/observer</class>

Essayez d'utiliser ceci à la place (comme cela est fait dans le code xml d'observateur d'événements ci-dessus):

<class>YourNamespace_YourModule_Model_Observer</class>

1
  1. Désactivez l'extension du app\etc\moduelsrépertoire.
  2. Vider le cache et
  3. Exécutez la compilation.

Maintenant, cela fonctionnera bien.


0

Désactivez d'abord la compilation et le cache.

Et effacez tout le cache avec force.

Installez ensuite l'extension.

Après ce processus Run Compilation.

Le processus ci-dessus a fonctionné pour moi.


0

Pour désactiver la compilation dans Magento, éditez includes / config.php. Vers la ligne 28, décommentez la première ligne et commentez la seconde:

#define('COMPILER_INCLUDE_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'src');
define('COMPILER_COLLECT_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'stat');
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.