web-dev-qa-db-ja.com

symfony2 doctrine2のvar_dumpのデータが多すぎます

約40のエンティティと多くの双方向の関係があります。 var_dump($ user)またはエンティティを使用するたびに、ブラウザに大量の配列と変数のデータがロードされると、クラッシュします。

何が問題なのか。

データは正常に挿入されています。本番環境で問題を引き起こすことはできますか?.

97
user825904

var_dump()をデバッグメソッド- dump()で置き換える Doctrine Common

\Doctrine\Common\Util\Debug::dump($user);

これは、単一のオブジェクトとDoctrineコレクションに対して機能し、ブラウザに表示されている問題が表示されないようにする必要があります。

219
mgiagnoni

うまくフォーマットされた:

echo '<pre>';
\Doctrine\Common\Util\Debug::dump($user, $recurciveLevelToDisplay);
echo '</pre>';
20

シンプルで簡単な例。

var_dump(serialize($Object));
4

Symfony <2.6

\Doctrine\Common\Util\Debug::dump($variable, $depth);を使用して、プロキシ情報なしでdoctrine出力を表示できます。

Symfony> 2.6

Symfony 2.6以上を使用している場合、dump()を使用することを強くお勧めします。適切にフォーマットされた色付きの出力が表示され、行を動的に拡張/非表示できます。 enter image description here

4
goto

Symfony 2.6では、コントローラーでdump($ var)を、twigで{{dump(var)}}を使用できるようになりました。

これをAppKernal.phpファイルのarray( 'dev'、 'test')セクションに追加してください。

$bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
2
J-who

問題は、双方向の関係では、両方のエンティティが相互にリンクしているため、entity1を表示するときにvar_dumpはentity2のすべてのプロパティを出力する必要があります。

2
Rad80

dump($ user)を使用すると、Symfony Profilerで完璧な結果を確認できます!幸運を

2
Vitaly Pugach

Get_object_vars()は視覚化も改善します。

echo "<pre>";
\Doctrine\Common\Util\Debug::dump(get_object_vars($user));
2

Echo serialize($ user);を使用してください。

1
AlexM