4

我完成了教程,我的问题在于我没有得到任何函数。在“全局配置和创建模型”部分包含错误(分配给变量时Mage::getModel('weblog/blogpost'),而模型尚不存在)。

在某些时候,我在 /index.php 中发现了一个 if 语句,其中调用了以下方法: Mage::setIsDeveloperMode(true);为了测试它,我将它放在 if 语句之外(我知道这不是好的做法)。

结果是我收到了这个警告信息:

Warning: simplexml_load_string() [function.simplexml-load-string]: Entity: line 1: parser error : XML declaration allowed only at the start of the document  in /home/dowebro/public_html/magento/lib/Varien/Simplexml/Config.php on line 510

#0 [internal function]: mageCoreErrorHandler(2, 'simplexml_load_...', '/home/dowebro/p...', 510, Array)
#1 /home/dowebro/public_html/magento/lib/Varien/Simplexml/Config.php(510): simplexml_load_string('    loadString('    loadFile('/home/dowebro/p...')
#4 /home/dowebro/public_html/magento/app/code/core/Mage/Core/Model/Config.php(318): Mage_Core_Model_Config->loadModulesConfiguration(Array, Object(Mage_Core_Model_Config))
#5 /home/dowebro/public_html/magento/app/code/core/Mage/Core/Model/App.php(414): Mage_Core_Model_Config->loadModules()
#6 /home/dowebro/public_html/magento/app/code/core/Mage/Core/Model/App.php(343): Mage_Core_Model_App->_initModules()
#7 /home/dowebro/public_html/magento/app/Mage.php(683): Mage_Core_Model_App->run(Array)
#8 /home/dowebro/public_html/magento/index.php(91): Mage::run('', 'store')
#9 {main}

但仍然没有我期望的错误。

那么,我怎样才能摆脱这个警告信息,但更重要的是,我怎样才能在开发模式下看到错误呢?

谢谢!

编辑:当我继续学习本教程时,我发现我没有从核心课程中得到任何反馈。例如:在尝试从资源定义不完整的模型中获取数据时,我应该得到“无法检索实体配置:weblog/blogpost”。好吧,我没有。:|

4

3 回答 3

8

开发者模式是use strictPHP 和 Magento 的一种。它迫使你修复一切。如果看起来该simplexml_load_string函数不喜欢系统中的 XML 配置文件之一。您可以通过转到第 510 行找到哪一个

/home/dowebro/public_html/magento/lib/Varien/Simplexml/Config.php

和 var 转储传递给loadFile.

根据错误信息

XML declaration allowed only at the start of the document

我的猜测是您的config.xmlXML 序言前面有一些空格

[    ]<?xml version=...

或者您不小心<?在 XML 文件中添加了某个位置。

于 2012-10-05T21:48:01.553 回答
0

我有这个问题,我可以解决调试文件 app\code\core\Mage\Core\Model\Config.php

在这个类中搜索方法 loadModulesConfiguration 并且我确定你有以下代码:

foreach ($fileName as $configFile) {
    $configFile = $this->getModuleDir('etc', $modName).DS.$configFile;
    if ($mergeModel->loadFile($configFile)) {
         $mergeToObject->extend($mergeModel, true);
    }
}

这添加了一个块尝试捕获,如下所示:

foreach ($fileName as $configFile) {
    try {
        $configFile = $this->getModuleDir('etc', $modName).DS.$configFile;
        if ($mergeModel->loadFile($configFile)) {
            $mergeToObject->extend($mergeModel, true);
        }
    } catch(Exception $e) {
        Mage::log($configFile);
    }
 }

然后检查日志,您将获得问题所在文件的名称

于 2014-03-18T18:02:00.857 回答
0

我不知道为什么我的帖子被删除了。模组我什至不能给你回消息。

我遵循与@Michael 相同的教程并遇到了同样的问题。

解决方案是应用程序 index.php 的根目录并从以下语句的前面删除哈希

#ini_set('display_errors', 1)

ini_set('display_errors', 1)
于 2013-10-31T09:54:28.273 回答