Voir le motif de calque où vous ne présentez que ce qui vous a été donné est bien et tout, mais comment savoir ce qui est disponible? Existe-t-il une fonctionnalité «lister toutes les variables définies» dans TWIG? Existe-t-il un moyen de vider une variable?
La solution que j'ai trouvée en la recherchant était de définir une fonction dans laquelle je peux utiliser mes outils de débogage php existants en injectant une fonction , mais toutes les références que j'ai trouvées incluent ces deux belles lignes de code, mais nulle part il n'est spécifié où place les. Étant donné qu'ils ont besoin d'une variable $ loader définie, j'ai essayé /app/config/autoload.php mais le $ loader était du mauvais type. Où dois-je placer le code php pour ajouter une fonction twig?
{{ dump() }}
pour vider toutes les variables, cela renvoie une page vierge. Existe-t-il un autre moyen de vider une variable?dump
, cedump
n'est évidemment pas le problème. Je suggérerais de poster une nouvelle question si vous ne pouvez pas le comprendre autrement.Vous pouvez utiliser la
debug
balise, qui est documentée ici .Edit: Depuis Twig 1.5, cela a été abandonné et remplacé par la nouvelle
dump
fonction (notez que c'est maintenant une fonction et non plus une balise). Voir aussi: La réponse acceptée ci-dessus.la source
Unknown tag name "debug"
, étendre votre configuration (soit dans le mondeconfig.yml
ouconfig_dev.yml
) comme décrit ici: github.com/symfony/symfony-docs/issues/455#issuecomment-1884861Donc je l'ai fait fonctionner, en partie un peu hackish:
twig: debug: 1
enapp/config/config.yml
Ajoutez ceci à 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(
end(
PS. J'aimerais toujours savoir comment / où récupérer l'environnement $ twig pour ajouter des filtres et des extensions.
la source
twig: debug: 1
car il hérite de ces informations de l'environnement de votre contrôleur frontal. Sinon, vous pourriez finir par afficher involontairement des informations de débogage dans votre environnement de production. Tant que vous travaillez dans l'environnement de développement, il est activé par défaut et désactivé dans votre environnement de production.Si vous utilisez Twig dans votre application en tant que composant, vous pouvez le faire:
Puis dans vos modèles:
la source
$twig = new Twig_Environment($loader, array(...
?Si vous utilisez Twig en tant que composant autonome, voici un exemple d'activation du débogage car il est peu probable que le vidage (variable) fonctionne directement.
Autonome
Cela a été trouvé sur le lien fourni par icode4food
Silex
la source
Videz toutes les variables personnalisées:
Vous pouvez utiliser mon plugin qui le fera pour vous (et formatera joliment la sortie):
Barre de vidage des brindilles
la source
{{ dump() }}
ne fonctionne pas pour moi.PHP
s'étouffe. Niveau de nidification trop profond je suppose.Tout ce dont vous avez vraiment besoin pour les
debug
modèles Twig si vous utilisezdebugger
est une extension comme celle-ci .Ensuite, il suffit de définir un point d'arrêt et d'appeler
{{ inspect() }}
là où vous en avez besoin. Vous obtenez les mêmes informations qu'avec{{ dump() }}
mais dans votre débogueur.la source
Depuis Symfony> = 2.6, il existe un joli composant VarDumper , mais il n'est pas utilisé par la
dump()
fonction de Twig .Pour l'écraser, nous pouvons créer une extension:
Dans l'implémentation suivante, n'oubliez pas de remplacer les espaces de noms.
Fuz/AppBundle/Resources/config/services.yml
Fuz/AppBundle/Twig/Extension/DebugExtension.php
la source
La recette complète ici pour une référence plus rapide (notez que toutes les étapes sont obligatoires):
1) lors de l'instanciation de Twig, passez l'option de débogage
2) ajoutez l'extension de débogage
3) Utilisez-le comme @Hazarapet Tunanyan l'a souligné
ou
ou
la source
Pour le débogage des modèles Twig, vous pouvez utiliser l' instruction de débogage .
Là, vous pouvez définir explicitement le paramètre de débogage.
la source
Unknown tag name "debug"
erreur.Vous pouvez modifier
et changez les
the var_dump()
fonctions en\Doctrine\Common\Util\Debug::dump()
la source
Comme la plupart des bons programmeurs PHP aiment utiliser XDebug pour parcourir le code en cours d'exécution et regarder les variables changer en temps réel, l'utilisation
dump()
ressemble à un retour au mauvais vieux temps.C'est pourquoi j'ai créé une extension Twig Debug et l'ai mise sur Github.
https://github.com/delboy1978uk/twig-debug
composer require delboy1978uk/twig-debug
Ajoutez ensuite l'extension. Si vous n'utilisez pas Symfony, comme ceci:
Si vous l'êtes, comme ceci dans la configuration YAML de vos services:
Une fois inscrit, vous pouvez maintenant le faire n'importe où dans un modèle de brindille:
Maintenant, vous pouvez utiliser XDebug, l'exécution s'arrêtera et vous pouvez voir toutes les propriétés du contexte et de l'environnement.
S'amuser! :-RÉ
la source
vous pouvez utiliser la fonction de vidage et l'imprimer comme ceci
mais il y a aussi une bonne chose, si vous ne définissez aucun argument pour la fonction de vidage, elle imprimera toutes les variables sont disponibles , comme
la source
Si vous êtes dans un environnement où vous ne pouvez pas utiliser la
dump
fonction (ex: opencart), vous pouvez essayer:la source