4

我正在尝试查看 Magento 系统的所有对象内部的内容,但是当我尝试从顶部链接模板内部 var_dump $_links 变量(包含呈现每个页面标题中的链接所需的所有信息)时,我的服务器响应 500 错误。有谁知道为什么?

4

7 回答 7

14

Magento 对象的转储有点混乱,即使没有递归,也有所有的 EAV 和缓存的东西。当您有一个数组时,您需要单独转储它们:

foreach ($_links as $object) {
    var_dump($object->debug());
}
于 2011-07-28T16:22:08.317 回答
3

很可能是内存错误。Magento 的对象可能很大,var_dumpPHP 中的默认实现对于某些循环引用并不那么聪明。

安装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 回答
0

我解决了我的 var_dump(array) 导致 Magento2 问题中出现 500 错误,如下所示(可能有人帮助)

//app/code/MyCompany/Shipping/view/adminhtml/templates/order/view/items.phtml

foreach ($_items as $_item):
    echo "<pre>";
    var_dump($_item->debug());
    echo "</pre>";

样本输出: 在此处输入图像描述

于 2019-05-14T09:07:13.197 回答