4

Magentoシステムのすべてのオブジェクトの内部を確認しようとしていますが、トップリンクテンプレートの内部から$ _links変数(すべてのページのヘッダーにリンクをレンダリングするために必要なすべての情報を含む)をvar_dumpしようとすると、私のサーバーは500エラーで応答します。誰もが理由を知っていますか?

4

7 に答える 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

Magentoは巨大なメモリホッグです。ほとんどの場合、使用可能なメモリが不足しています。

オブジェクト自体をvarダンプする代わりに、その->toArray()メソッドを使用してオブジェクトデータをダンプします。注:すべてのMage_オブジェクトはこのメソッドを継承します。

于 2011-07-28T14:53:56.580 に答える
2

このようなシナリオでは、PHPがエラーを吐き出し、ユーザーに表示するようにセットアップを構成しなかった場合に、HTTP500エラーが発生します。

エラーログ(のようなもの/var/lib/httpd/log/error_log)を調べて、実際に何が起こっているかを確認します。

可能性は次のとおりです。

  • 構文エラー
  • 出力前にすでに送信されたヘッダー
  • 巨大な変数の印刷によるメモリの枯渇
于 2011-07-28T15:07:55.390 に答える
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 に答える