J'ai des variables à l'intérieur d'un modèle et je ne sais pas où je les ai affectées. J'ai besoin de savoir ce qu'il y a dans 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 générer/déboguer des variables intelligentes en utilisant quelque chose comme var_dump()
dans les modèles?
Vous pouvez utiliser les balises {php}
Méthode 1 (ne fonctionnera pas dans Smarty version 3.1 ou 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 que les tableaux obligent smarty à exécuter le modificateur, sinon il le fait pour chaque élément.
Pour ce que cela vaut, vous pouvez faire {$varname|@debug_print_var}
pour obtenir une sortie var_dump()
- esque pour votre variable.
utilisez simplement {debug} dans votre fichier .tpl et regardez votre code source
Dans le nouveau 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, utilisez-la entre les balises <pre> </pre>
Si vous voulez quelque chose de plus joli, je le 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, il existe un modificateur intégré que vous pouvez utiliser en utilisant |
(opérateur de pipeline unique). Comme ceci, {$varname|@print_r}
affichera la valeur sous la forme print_r($php_variable)
Pour déboguer dans smarty dans prestashop 1.6.x:
{ddd($variable)} -> debug and die
{ppp($variable)} -> debug only
Une balise de débogage utile utile:
{debug}