我正在尝试查看 Magento 系统的所有对象内部的内容,但是当我尝试从顶部链接模板内部 var_dump $_links 变量(包含呈现每个页面标题中的链接所需的所有信息)时,我的服务器响应 500 错误。有谁知道为什么?
问问题
7621 次
7 回答
14
Magento 对象的转储有点混乱,即使没有递归,也有所有的 EAV 和缓存的东西。当您有一个数组时,您需要单独转储它们:
foreach ($_links as $object) {
var_dump($object->debug());
}
于 2011-07-28T16:22:08.317 回答
3
很可能是内存错误。Magento 的对象可能很大,var_dump
PHP 中的默认实现对于某些循环引用并不那么聪明。
安装xDebug是必须的。使用 xDebug,该var_dump
函数变得更加智能,并且内存限制耗尽错误大部分都消失了。
于 2011-07-28T16:47:51.157 回答
2
HTTP 500 错误会在 PHP 发出错误时发生这种情况,并且您没有配置设置以将其显示给用户。
查看您的错误日志(类似于/var/lib/httpd/log/error_log
)以了解实际发生的情况。
可能性包括:
- 语法错误
- 输出前已发送的标头
- 打印巨大变量导致内存耗尽
于 2011-07-28T15:07:55.390 回答
2
Magento is a huge memory hog. Most likely, you're running out of available memory.
不是 var 转储对象本身,而是使用其->toArray()
方法转储对象数据。注意:所有 Mage_ 对象都继承此方法。
于 2011-07-28T14:53:56.580 回答
1
在大多数情况下,这是因为 $_links 变量包含许多巨大的嵌套对象。试试 PHP 的 xDebug 扩展 - 它允许调整 var_dump 输出以限制嵌套级别和显示数据的数量。
于 2011-07-28T14:52:57.547 回答
0
$_link
变量内部包含大量对象,我们需要调试才能打印对象
print_r($_link->debug());
(or)
var_dump($_link->debug());
于 2014-07-24T06:19:17.160 回答