各フィルターの動作するタイミング

フィルターの順番

Smartyにはprefilter プリフィルタpostfilter ポストフィルタoutputfilter アウトプットフィルタとありますが、この違いはなんでしょう?

prefilterは、テンプレートをコンパイルする前に動作します。テンプレートファイルに対して行う処理と考えたほうが良いかもしれません。
assignアサインした変数などには行われません。

postfilterは、コンパイルを行ったファイルがSmartyの合成処理される前に動作します。これはテンプレートファイルのSmartyタグ以外に対して行われる処理です。
ここでもassignアサインした変数などには行われません。

outputfilterは、合成処理が行われ、出力される直前に動作します。合成後の全体にかかる処理です。
これはassignアサインした変数などにも実行されます。

テンプレートではなく、assignアサインした変数にのみ動作させたい場合はdefault_modifiersを使います。

関連記事

スポンサーリンク

FROM句 データを取り出す(操作する)テーブルを選ぶ

ホームページ製作・web系アプリ系の製作案件募集中です。

上に戻る