Как отлаживать переменные в Smarty, как в PHP var dump()
у меня есть некоторые переменные внутри шаблона, и я не знаю, где я их назначил. Мне нужно знать, что находится внутри конкретной переменной; например, скажем, у меня есть переменная в smarty под названием member. Я пробовал с {debug} но это не сработало, и всплывающее окно не было показано.
как я могу выводить / отлаживать переменные smarty, используя что-то вроде var_dump() внутри шаблонов?
11 ответов:
вы можете использовать теги {php}
метод 1 (не будет работать в Smarty 3.1 или более поздней версии):
{php} $var = $this->get_template_vars('var'); var_dump($var); {/php}Способ 2:
{$var|@print_r}Способ 3:
{$var|@var_dump}Дайте мне знать, если это помогает.
Это должно работать:
{$var|@print_r}или
{$var|@var_dump}@ необходим для массивов, чтобы заставить smarty запустить модификатор против всего этого, в противном случае он делает это для каждого элемента.
для чего это стоит, вы можете сделать
{$varname|@debug_print_var}иvar_dump()- выход esque для вашей переменной.
попробуйте с Smarty сессии:
{$smarty.session|@debug_print_var}или
{$smarty.session|@print_r}чтобы украсить ваш выход, используйте его между
<pre> </pre>теги
Если вы хотите что-то красивее, я бы посоветовал
{"<?php\n$data =\n"|@cat:{$yourvariable|@var_export:true|@cat:";\n?>"}|@highlight_string:true}просто заменить yourvariable по переменной
в smarty есть встроенный модификатор, который вы можете использовать, используя
|(один оператор конвейера). Вот так{$varname|@print_r}выведет значение какprint_r($php_variable)
для отладки в smarty в prestashop 1.6.x:
{ddd($variable)} -> debug and die {ppp($variable)} -> debug onlyеще один полезный тег отладки:
{debug}
Comments