Comment var_dump variables dans les templates twig?
Vue de la couche de motif où vous présente seulement ce que vous avez reçu est bien et tout, mais comment savez-vous ce qui est disponible? Est-il une "liste de toutes les variables définies par la fonctionnalité" dans TWIG? Est-il un moyen de vider une variable?
La solution que j'ai trouvé en faisant une recherche a été de définir une fonction où je peux utiliser mon php outils de débogage par l'injection d'une fonction, mais toutes les références que j'ai trouvé à qui englobe ces deux belles lignes de code, mais nulle part il n'est précisé pour les placer. Va par le fait qu'ils ont besoin d'un $loader variable définie, j'ai essayé /app/config/autoload.php mais l' $loader il y avait le mauvais genre. Où dois-je placer le code php pour l'ajout d'une fonction twig?
Vous devez vous connecter pour publier un commentaire.
Comme Twig 1.5, la réponse correcte est d'utiliser la fonction de vidage. Il est entièrement documentée dans la documentation de Twig. Voici la documentation pour activer ce à l'intérieur de Symfony2.
{{ dump() }}
pour vider toutes les variables, Il renvoie à une page blanche. Est-il un autre moyen pour vider une variable ?dump
, évidemment, ledump
n'est pas le problème. Je suggère de poster une nouvelle question si vous ne pouvez pas le comprendre autrement.{{ dump() }}
, ne fait aucune différence tournant Vernis s'éteint.Vous pouvez utiliser le
debug
tag, qui est documenté ici.Edit: Comme Twig 1.5, cela a été supprimée et remplacée par la nouvelle
dump
fonction (remarque, c'est maintenant une fonction et non plus une balise). Voir aussi: La accepté la réponse ci-dessus.Unknown tag name "debug"
, étendre votre configuration (que ce soit dans le globalconfig.yml
ouconfig_dev.yml
) comme décrit ici: github.com/symfony/symfony-docs/issues/455#issuecomment-1884861Donc j'ai eu de travail, partie un peu hackish:
twig: debug: 1
dansapp/config/config.yml
Ajouter à config_dev.yml
sudo rm -fr app/cache/dev
print_r()
, j'ai ouvertvendor/twig-extensions/lib/Twig/Extensions/Node/Debug.php
et changéprint_r(
àd(
PS. Je voudrais quand même savoir comment/où de saisir l' $brindille de l'environnement pour ajouter des filtres et des extensions.
twig: debug: 1
parce que c'est hériter de cette information à partir de votre contrôleur frontal de l'environnement. Sinon, vous pourriez vous retrouver dans uninentionally de la sortie des informations de débogage dans votre environnement de prod. Aussi longtemps que vous travaillez dans l'environnement de dev qui est activée par défaut et il est désactivé dans votre environnement de prod.Si vous utilisez Brindille dans votre application comme un composant vous pouvez faire ceci:
Ensuite dans vos modèles:
$twig = new Twig_Environment($loader, array(...
?Si vous utilisez Twig comme une composante autonome voici un exemple de comment activer le débogage comme il est peu probable que le dump(variable) fonction tout droit sorti de la boîte
Autonome
Cela a été constaté sur le lien fourni par icode4food
Silex
Vidage de toutes les variables personnalisées:
Vous pouvez utiliser mon plugin qui va le faire pour vous (et vous bien le format de sortie):
Brindille De Vidage De La Barre
{{ dump() }}
ne fonctionne pas pour moi.PHP
étouffe. Niveau d'imbrication trop profonde, je suppose.Tous vous avez vraiment besoin de
debug
les templates Twig si vous utilisez undebugger
est une extension comme cette.Puis c'est juste une question de fixer un point d'arrêt et l'appel
{{ inspect() }}
partout où vous en avez besoin. Vous obtenez les mêmes infos que avec{{ dump() }}
mais dans votre débogueur.Depuis Symfony >= 2.6, il y a une belle VarDumper composant, mais il n'est pas utilisé par les Rameaux de l'
dump()
fonction.Pour le remplacer, nous pouvons créer une extension:
Dans la suite de la mise en œuvre, ne pas oublier de remplacer les espaces de noms.
Fuz/AppBundle/Resources/config/services.yml
Fuz/AppBundle/Twig/Extension/DebugExtension.php
La recette complète ici plus rapide de la référence (à noter que toutes les étapes sont obligatoires):
1) lors de l'instanciation de Rameau, passer l'option debug
2) ajouter le debug extension
3) l'Utiliser comme @Hazarapet Tunanyan souligné
ou
ou
Pour le débogage des templates Twig, vous pouvez utiliser le instruction de débogage.
Là, vous pouvez définir le paramètre debug explicitement.
Unknown tag name "debug"
erreur.Vous pouvez modifier
et changement
the var_dump()
fonctions de\Doctrine\Common\Util\Debug::dump()
Comme la plupart des bons programmeurs PHP aime utiliser XDebug réellement à l'exécution de code et de surveiller les variables changent en temps réel, à l'aide de
dump()
se sent comme un pas en arrière pour les mauvais jours.C'est pourquoi j'ai fait une Brindille Debug extension et le mettre sur Github.
https://github.com/delboy1978uk/twig-debug
composer require delboy1978uk/twig-debug
Puis ajouter l'extension. Si vous n'êtes pas à l'aide de Symfony, comme ceci:
Si vous êtes, comme ce à votre services YAML config:
Une fois inscrit, vous pouvez maintenant le faire n'importe où dans un template twig:
Maintenant, vous pouvez utiliser XDebug, l'exécution est suspendue, et vous pouvez voir toutes les propriétés à la fois du Contexte et de l'Environnement.
Amusez-vous! 😀
vous pouvez utiliser dump de la fonction et de l'imprimer comme ce
mais il est une bonne chose aussi, si vous ne définissez pas un argument à la fonction de vidage, il apparaîtra à l'impression toutes les variables sont disponibles, comme