Comment déboguer des Variables dans Smarty comme dans PHP var dump()
J'ai quelques variables dans un modèle et je ne sais pas où je les ai assignées. J'ai besoin de savoir ce qui est à l'intérieur d'une variable particulière; par exemple, disons que j'ai une variable dans smarty appelée member
. J'ai essayé avec {debug}
mais cela n'a pas fonctionné, et aucune fenêtre contextuelle n'a été affichée.
Comment puis-je sortir / déboguer des variables smarty en utilisant quelque chose comme var_dump()
à l'intérieur des modèles?
11 réponses
Vous pouvez utiliser les balises {php}
Méthode 1 (ne fonctionne pas dans Smarty 3.1 ou version ultérieure):
{php}
$var =
$this->get_template_vars('var');
var_dump($var);
{/php}
Méthode 2:
{$var|@print_r}
Méthode 3:
{$var|@var_dump}
Faites-moi savoir si cela aide.
Cela devrait fonctionner:
{$var|@print_r}
Ou
{$var|@var_dump}
Le @ est nécessaire pour les tableaux pour que smarty exécute le modificateur contre le tout, sinon il le fait pour chaque élément.
Pour ce que ça vaut, vous pouvez faire {$varname|@debug_print_var}
pour obtenir une sortie var_dump()
-esque pour votre variable.
Il suffit d'utiliser {debug} dans votre .tpl et regardez votre code source
Dans new Smarty c'est:
<pre>
{var_dump($variable)}
</pre>
Essayez avec la Session Smarty:
{$smarty.session|@debug_print_var}
Ou
{$smarty.session|@print_r}
Pour embellir votre sortie, utilisation entre <pre> </pre>
balises
Si vous voulez quelque chose de plus joli, je conseillerais
{"<?php\n\$data =\n"|@cat:{$yourvariable|@var_export:true|@cat:";\n?>"}|@highlight_string:true}
Il suffit de remplacer yourvariable par votre variable
Essayez ceci .... Définissez $debugging
sur TRUE dans Smarty.
Dans smarty V3 vous pouvez utiliser ceci
{var_dump($variable)}
Dans smarty, il y a un modificateur intégré que vous pouvez utiliser en utilisant |
(opérateur de pipeline unique). Comme ceci {$varname|@print_r}
imprimera la valeur comme print_r($php_variable)
Pour déboguer dans smarty dans prestashop 1.6.x:
{ddd($variable)} -> debug and die
{ppp($variable)} -> debug only
Une autre balise de débogage utile:
{debug}