J'ai une quarantaine d'entités et de nombreuses relations bidirectionnelles. Chaque fois que j'utilise var_dump ($ user) ou toute entité, mon navigateur est chargé avec trop de données de tableaux et de variables, puis il plante.
je veux quel est le problème.
Les données sont insérées correctement. Puis-je causer des problèmes en production.
php
debugging
doctrine-orm
symfony-2.1
Mirage
la source
la source
Réponses:
Remplacez var_dump () par la méthode de débogage dump () fournie par Doctrine Common .
Cela fonctionne pour les objets uniques et les collections Doctrine et devrait empêcher le navigateur d'afficher les problèmes que vous rencontrez.
la source
dump()
avec MaxDepth , endump()
deuxième argument est MaxDepth .error_log(print_r(\Doctrine\Common\Util\Debug::export($variable, $depth),1));
C'est assez compliqué à taper à chaque fois, mais vous pouvez facilement créer une macro pour cela.bien formaté:
la source
Exemple simple et facile.
la source
Le problème est que dans une relation bidirectionnelle, les deux entités ont un lien entre elles, donc tout en affichant entity1, var_dump devra également imprimer toutes les propriétés de entity2, qui incluent entity1 elle-même en vous donnant une boucle.
la source
Symfony <2.6
Vous pouvez l'utiliser
\Doctrine\Common\Util\Debug::dump($variable, $depth);
pour afficher la sortie de doctrine sans les informations de proxy.Symfony> 2.6
Si vous utilisez symfony 2.6 ou plus, je vous conseille fortement d'utiliser
dump()
. Il montre une sortie bien formatée et colorée, et vous pouvez dynamiquement étendre / masquer les lignes.la source
Le get_object_vars () améliore également la visualisation.
la source
Avec Symfony 2.6, vous pouvez maintenant simplement utiliser dump ($ var) dans votre contrôleur et {{dump (var)}} dans twig.
Assurez-vous de l'ajouter à votre fichier AppKernal.php, dans la section array ('dev', 'test').
la source
utilisez dump ($ user) et vous pouvez voir un résultat parfait dans Symfony Profiler! bonne chance
la source
Utilisez simplement echo serialize ($ user);
la source