web-dev-qa-db-ja.com

PHP var_dump()のようなSmartyで変数をデバッグする方法

テンプレート内にいくつかの変数があり、それらをどこに割り当てたかわかりません。特定の変数の内容を知る必要があります。たとえば、memberというsmartyの変数があるとします。 {debug}で試しましたが、機能せず、ポップアップは表示されませんでした。

テンプレート内でvar_dump()などを使用してsmarty変数を出力/デバッグするにはどうすればよいですか?

149
streetparade

{php}タグを使用できます

方法1(Smarty 3.1以降では動作しません):

{php}

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

{/php}

方法2:

{$var|@print_r}

方法3:

{$var|@var_dump}

これが役立つかどうか教えてください。

302
pinaki

これは動作するはずです:

{$var|@print_r}

または

{$var|@var_dump}

@は、配列全体に対して修飾子をスマートに実行するために配列に必要です。そうでない場合は、各要素に対して実行します。

114
Tom Haigh

価値があるものについては、{$varname|@debug_print_var}を実行して、変数のvar_dump()- esque出力を取得できます。

23
Chris

.tplで{debug}を使用し、ソースコードを見てください

9
david

新しいSmartyでは次のとおりです。

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

Smartyセッションで試してください:

{$smarty.session|@debug_print_var}

または

{$smarty.session|@print_r}

出力を美しくするには、<pre> </pre>タグの間に使用します

4
karadayi

もっときれいなものがほしいなら

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

yourvariableを変数に置き換えるだけです

2
Bastilol

これを試してください.... Smartyで$debuggingをTRUEに設定します。

1
RubyDubee

Prestashop 1.6.xでsmartyでデバッグするには:

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

{ppp($variable)} -> debug only

その他の便利なデバッグタグ:

{debug}
1
Aurelink

Smartyには、|(単一パイプライン演算子)を使用して使用できる修飾子が組み込まれています。このように{$varname|@print_r}は値をprint_r($php_variable)として出力します

0
Pranav Bhatt

smarty V3ではこれを使用できます

{var_dump($variable)}

0
Awais fiaz