致命错误:调用成员函数 getArea()在非对象中 {}目录/includes/src/Mage_Core_Model_App_Area.php 在第155行
当我安装了我在干净安装的Magento上编写的扩展程序时出现了问题。当移植到开发服务器时它将其关闭,我似乎无法找到它的起源。禁用扩展名不会改变任何内容。随着清除缓存和所有常规Magento打嗝。据我所知,我确保文件权限是正确的。
答案 0 :(得分:4)
错误中文件的名称
Fatal error: Call to a member function getArea() on a non-object in {directory}/includes/src/Mage_Core_Model_App_Area.php on line 155
表示Magento正在使用编译器模式运行。安装新的 在合规模式下运行的模块可以使Weird Things™发生。我说你的行为有资格作为一个奇怪的事情
打开shell并将目录更改为应用程序的根目录。然后输入
$ cd shell
$ php compiler.php state
需要从此shell
子文件夹运行,因为compiler.php
假定在包含一些重要文件时是可怕的。您应该看到类似
Compiler Status: Enabled
Compilation State: Compiled
Collected Files Count: 5602
Compiled Scopes Count: 4
要禁用编译器,请键入
$ php compiler.php disable
您可以通过查看
来查看此脚本是否完成了它的工作File: includes/config.php
如果此文件中的两行代码被注释,Magento就不会寻找"编译"码。
#define('COMPILER_INCLUDE_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'src');
#define('COMPILER_COLLECT_PATH', dirname(__FILE__).DIRECTORY_SEPARATOR.'stat');
如果他们不是,那么请使用#
标记发表评论(启用/停用脚本使用并仅查找#
和#
)。
这样做,你的错误应该消失(或至少改为不同的东西,允许进一步的调试)
答案 1 :(得分:3)