O erro Mage registry key "_singleton/ricardomartins_pagseguro/observer" already exists é muito comum acontecer em lojas que estão com o Compilador ativado.
O erro, nesses casos é parecido com
a:5:{i:0;s:79:"Mage registry key "_singleton/ricardomartins_pagseguro/observer" already exists";i:1;s:4019:"#0 /path/da/loja/app/Mage.php(223): Mage::throwException('Mage registry k...')
a:5:{i:0;s:79:"Mage registry key "_singleton/ricardomartins_pagseguro/observer" already exists";i:1;s:4019:"#0 /path/da/loja/app/Mage.php(223): Mage::throwException('Mage registry k...')
#1 /path/da/loja/app/Mage.php(477): Mage::register('_singleton/rica...', false)
#2 /path/da/loja/includes/src/__default.php(22147): Mage::getSingleton('ricardomartins_...')
#3 /path/da/loja/app/Mage.php(448): Mage_Core_Model_App->dispatchEvent('core_block_abst...', Array)
#4 /path/da/loja/includes/src/__default.php(2637): Mage::dispatchEvent('core_block_abst...', Array)
#5 /path/da/loja/includes/src/__default.php(2331): Mage_Core_Block_Abstract->toHtml()
#6 /path/da/loja/includes/src/__default.php(2271): Mage_Core_Block_Abstract->_getChildHtml('optional_zip_co...', true)
#7 /path/da/loja/app/design/frontend/mgstheme/food/template/page/html/head.phtml(69): Mage_Core_Block_Abstract->getChildHtml()
#8 /path/da/loja/includes/src/__default.php(3418): include('/home/webmarket...')
#9 /path/da/loja/includes/src/__default.php(3449): Mage_Core_Block_Template->fetchView('frontend/mgsthe...')
#10 /path/da/loja/includes/src/__default.php(3463): Mage_Core_Block_Template->renderView()
#11 /path/da/loja/includes/src/__default.php(2613): Mage_Core_Block_Template->_toHtml()
#12 /path/da/loja/includes/src/__default.php(2331): Mage_Core_Block_Abstract->toHtml()
#13 /path/da/loja/includes/src/__default.php(2275): Mage_Core_Block_Abstract->_getChildHtml('head', true)
#14 /path/da/loja/app/design/frontend/mgstheme/food/template/page/2columns-right.phtml(4): Mage_Core_Block_Abstract->getChildHtml('head')
#15 /path/da/loja/includes/src/__default.php(3418): include('/home/webmarket...')
#16 /path/da/loja/includes/src/__default.php(3449): Mage_Core_Block_Template->fetchView('frontend/mgsthe...')
#17 /path/da/loja/includes/src/__default.php(3463): Mage_Core_Block_Template->renderView()
#18 /path/da/loja/includes/src/__default.php(2613): Mage_Core_Block_Template->_toHtml()
#19 /path/da/loja/includes/src/__default.php(28708): Mage_Core_Block_Abstract->toHtml()
#20 /path/da/loja/includes/src/__default.php(14244): Mage_Core_Model_Layout->getOutput()
#21 /path/da/loja/includes/src/__default.php(11595): Mage_Core_Controller_Varien_Action->renderLayout()
#22 /path/da/loja/includes/src/__default.php(11510): Mage_Cms_Helper_Page->_renderPage(Object(Mage_Cms_IndexController), 'home')
#23 /path/da/loja/app/code/core/Mage/Cms/controllers/IndexController.php(45): Mage_Cms_Helper_Page->renderPage(Object(Mage_Cms_IndexController), 'home')
#24 /path/da/loja/includes/src/__default.php(14272): Mage_Cms_IndexController->indexAction()
#25 /path/da/loja/includes/src/__default.php(18750): Mage_Core_Controller_Varien_Action->dispatch('index')
#26 /path/da/loja/includes/src/__default.php(18280): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#27 /path/da/loja/includes/src/__default.php(21176): Mage_Core_Controller_Varien_Front->dispatch()
#28 /path/da/loja/app/Mage.php(684): Mage_Core_Model_App->run(Array)
#29 /path/da/loja/index.php(83): Mage::run('', 'store')
#30 {main}";s:3:"url";s:16:"/dognaturalfood/";s:11:"script_name";s:25:"/loja/index.php";s:4:"skin";s:7:"default";}
Porque ocorre?
O compilador do Magento basicamente faz com que todas as classes, de todos os módulos sejam reunidos em um único arquivo PHP. Porém, ele faz isso de tempos em tempos, cacheando esse arquivo. Quando se instala um novo módulo, ele não atualiza esse arquivo principal.
Para resolver é muito simples. Só precisamos atualizar o compilador. Para isso, abra o terminal da sua loja usando um acesso SSH, vá até o diretório base(raíz) da sua loja magento e digite os seguintes comandos:
php -f shell/compiler.php disable
php -f shell/compiler.php clear
php -f shell/compiler.php compile
Você também pode desabilitar o compilador do magento em Sistema->Ferramentas->Compilador.
Comentários
1 comentário
Perfeito!
Estou fazendo uma migração de um servidor para o outro e deu esse problema. Fiz exatamente o que vc disse e rodou na hora.
Obrigado!
Por favor, entre para comentar.