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.