1

每当我在 Magento 1.7 中打开开发人员模式时,我都会收到此警告消息如果有任何其他警告或错误,它将显示该错误但是当没有错误时,此屏幕将出现。一旦我关闭开发者模式,我就可以使用网站。

警告:get_class() 期望参数 1 是对象,在第 1340 行 >C:\xampp\htdocs\magento\app\code\core\Mage\Core\Model\App.php 中给出的布尔值

0 [内部函数]: mageCoreErrorHandler(2, 'get_class() exp...', 'C:\xampp\htdocs...', >1340, Array) #1 C:\xampp\htdocs\magento\app\ code\core\Mage\Core\Model\App.php(1340): >get_class(false) #2 C:\xampp\htdocs\magento\app\code\core\Mage\Core\Model\App.php(1317 ): >Mage_Core_Model_App->_callObserverMethod(false, 'check', Object(Varien_Event_Observer)) #3 >C:\xampp\htdocs\magento\app\Mage.php(447): Mage_Core_Model_App->dispatchEvent('controller_fron... ',数组)#4 >C:\xampp\htdocs\magento\app\code\core\Mage\Core\Controller\Varien\Front.php(147): ?>Mage::dispatchEvent('controller_fron...' , 数组) #5 >C:\xampp\htdocs\magento\app\code\core\Mage\Core\Model\App.php(749): ?>Mage_Core_Controller_Varien_Front->init() #6 >C:\xampp\ htdocs\magento\app\code\core\Mage\Core\Model\App。php(1094): Mage_Core_Model_App->_initFrontController() #7 >C:\xampp\htdocs\magento\app\code\core\Mage\Core\Model\App.php(354): Mage_Core_Model_App->getFrontController() #8 C:\xampp\htdocs\magento\app\Mage.php(683): Mage_Core_Model_App->run(Array) #9 C:\xampp\htdocs\magento\index.php(87): Mage::run('' , '商店') #10 {main}

我们将不胜感激任何帮助或指导。

4

1 回答 1

1

你有一个已失效的观察者;见Mage_Core_Model_App::_callObserverMethod()(链接)

protected function _callObserverMethod($object, $method, $observer)
{
    if (method_exists($object, $method)) {
        $object->$method($observer);
    } elseif (Mage::getIsDeveloperMode()) {
        Mage::throwException('Method "'.$method.'" is not defined in "'.get_class($object).'"');
    }
    return $this;
}

从堆栈跟踪的其余部分可以看出,正在观察的事件是controller_front_init_routers(ref. Mage_Core_Controller_Varien_Front::init()(link) )。除非Mage_Cms_Controller_Router(link)出现问题,否则问题必须出在配置为观察此事件的自定义模块上。

要查找有问题的配置,请在app/code中搜索<controller_front_init_routers>.

您还可以创建一个不调用前端控制器的测试脚本并使用它来调试:

<?php
ini_set('display_errors',true);
error_reporting(E_ALL | E_STRICT);
include 'app/Mage.php';
Mage::setIsDeveloperMode(true);
Mage::app();

Zend_Debug::dump(
    Mage::getConfig()->getXpath('//controller_front_init_routers//class')
);

库存输出如下;其他任何事情都是你的麻烦制造者:

array(1) {
    [0] => object(Mage_Core_Model_Config_Element)#66 (1) {
        [0] => string(26) "Mage_Cms_Controller_Router"
    }
}
于 2013-02-22T00:43:36.703 回答