php - 谁能帮助解决这个 Magento 错误?

标签 php magento

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 上写的扩展时出现。当移植到开发服务器时,它被关闭了,我似乎无法找到它的起源。禁用扩展没有任何改变。除了清除缓存和所有常规的 Magento 问题。据我所知,我已确保文件权限是正确的。

最佳答案

你报错的文件名

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 正在运行编译器模式。安装新的 在 complied 模式下运行的模块可以使 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');

如果不是,则用 # 标记注释掉(启用/禁用脚本使用并查找 ##)。

这样做,你的错误就会消失(或者至少改变一些不同的东西,允许进一步调试)

关于php - 谁能帮助解决这个 Magento 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4858562/

相关文章:

php - 无法访问特征中的 protected 属性

php - SQL/PHP-语法错误或访问冲突: 1064 You have an error in your SQL syntax; [closed]

php - 将 Blob 对象保存为服务器上的文件

php - Magento 在临时数据库和实时数据库上同步订单

php - 如何在 Magento 列表产品页面上获取属性值的 ID 号?

php - Magento - PayPal 未重定向到移动网站

java - 安排导出 Google Analytics csv 报告

php - foreach 结果在同一行

php - 表情符号显示为?在MySQL数据库中

magento - 创建 Magento 后端字段只读