Ich habe ungefähr 40 Entitäten und viele bidirektionale Beziehungen. Immer wenn ich var_dump ($ user) oder eine Entität verwende, wird mein Browser mit zu vielen Daten von Arrays und Variablen geladen, dann ist er einfach abgestürzt.
Ich möchte, was das Problem ist.
Die Daten werden gut eingefügt. Kann ich Probleme in der Produktion verursachen?
php
debugging
doctrine-orm
symfony-2.1
Fata Morgana
quelle
quelle
Antworten:
Ersetzen Sie var_dump () durch die von Doctrine Common bereitgestellte Debug-Methode dump () .
Es funktioniert für einzelne Objekte und Doctrine-Sammlungen und sollte verhindern, dass im Browser Probleme angezeigt werden.
quelle
dump()
mit MaxDepth , imdump()
zweiten Argument ist MaxDepth .error_log(print_r(\Doctrine\Common\Util\Debug::export($variable, $depth),1));
Sie Folgendes: Es ist ziemlich umständlich, jedes Mal zu tippen, aber Sie können leicht ein Makro dafür erstellen.gut formatiert:
quelle
Einfaches und leichtes Beispiel.
quelle
Das Problem ist, dass in einer bidirektionalen Beziehung beide Entitäten eine Verknüpfung zueinander haben. Während der Anzeige von entity1 muss var_dump auch alle Eigenschaften von entity2 drucken, einschließlich entity1 selbst, wodurch Sie eine Schleife erhalten.
quelle
Symfony <2.6
Sie können
\Doctrine\Common\Util\Debug::dump($variable, $depth);
es verwenden, um die Doktrinausgabe ohne die Proxy-Informationen anzuzeigen.Symfony> 2.6
Wenn Sie Symfony 2.6 oder höher verwenden, empfehle ich Ihnen dringend, diese zu verwenden
dump()
. Es zeigt eine gut formatierte und farbige Ausgabe, und Sie können Zeilen dynamisch ausgeben / ausblenden.quelle
Die get_object_vars () verbessern auch die Visualisierung.
quelle
Mit Symfony 2.6 können Sie jetzt einfach dump ($ var) in Ihrem Controller und {{dump (var)}} in twig verwenden.
Stellen Sie sicher, dass Sie dies zu Ihrer AppKernal.php-Datei im Abschnitt Array ('dev', 'test') hinzufügen.
quelle
Verwenden Sie dump ($ user) und Sie können das perfekte Ergebnis in Symfony Profiler sehen! Viel Glück
quelle
Verwenden Sie einfach echo serialize ($ user);
quelle