Как отлаживать переменные в Smarty, как в PHP var_dump()

У меня есть некоторые переменные внутри шаблона, и я не знаю, где я их назначил. Мне нужно знать, что находится внутри конкретной переменной; например, у меня есть переменная в smarty, называемая member. Я пытался с {debug}, но это не сработало, и всплывающее окно не было показано.

Как я могу выводить/отлаживать переменные smarty с помощью чего-то типа var_dump() внутри шаблонов?

Ответ 1

Вы можете использовать теги {php}

Метод 1 (не будет работать в Smarty 3.1 или более поздней версии):

{php}

$var =
$this->get_template_vars('var');
var_dump($var);

{/php}

Метод 2:

{$var|@print_r}

Метод 3:

{$var|@var_dump}

Ответ 2

Это должно работать:

{$var|@print_r}

или

{$var|@var_dump}

@необходим для массивов, чтобы smarty запускал модификатор против всего, иначе он делает это для каждого элемента.

Ответ 3

Для чего вы можете сделать {$varname|@debug_print_var}, чтобы получить var_dump() -еский вывод для вашей переменной.

Ответ 4

просто используйте {debug} в вашем .tpl и посмотрите на исходный код

Ответ 5

В новом Smarty это:

<pre>
{var_dump($variable)}
</pre>

Ответ 6

Попробуйте сеанс Smarty:

{$smarty.session|@debug_print_var}

или

{$smarty.session|@print_r}

Чтобы украсить ваш вывод, используйте его между тегами <pre> </pre>

Ответ 7

Если вы хотите что-то красивое, я бы посоветовал

{"<?php\n\$data =\n"|@cat:{$yourvariable|@var_export:true|@cat:";\n?>"}|@highlight_string:true}

просто замените yourvariable на свою переменную

Ответ 8

попробуйте это.... Установите $debugging в TRUE в Smarty.

Ответ 9

Отладка в smarty в prestashop 1.6.x:

{ddd($variable)} -> debug and die

{ppp($variable)} -> debug only

В качестве полезного отладочного тега:

{debug}

Ответ 10

в Smarty V3 вы можете использовать этот

{var_dump($variable)}

Ответ 11

В smarty есть встроенный модификатор, который вы можете использовать, используя | (оператор с одним конвейером). Подобно этому {$varname|@print_r} будет печатать значение как print_r($php_variable)