最終更新:2011-11-07 (月) 10:40:46 (4548d)  

Smarty
Top / Smarty

SmartyはPHPのためのテンプレートエンジンです。

http://www.smarty.net/

特徴

  • 非常に高速
  • 下仕事はPHPパーサが行うので能率的
  • コンパイルは一度だけ行われるので、テンプレートのパースによるオーバーヘッドが無い
  • 変更されたテンプレートファイルのみ再コンパイルを行うのでスマート
  • カスタム関数及び 変数の修正子をカスタム定義する事によって、 テンプレート言語を強力に拡張する事が可能
  • テンプレート言語の開始と終端を表すデリミタタグの記法を変更可能 (例: { }, {{ }}, <!--{ }-->, 等)
  • if/elseif/else/endif ステートメントはPHPパーサに渡されて処理されるので、{if ...}の条件式には シンプルな式から複雑な式まで自由に指定可能
  • section, if等は無制限にネスト可能
  • テンプレートエンジンはカスタマイズできるので必要ない(又は推奨されない)かもしれないが、 テンプレートファイルにPHPコードを埋め込む事が可能
  • キャッシュ機能をサポート
  • テンプレートリソースのサポート
  • カスタムキャッシュハンドラ関数
  • プラグイン構造

アサイン

assignメソッドでは渡す値に配列やオブジェクトを設定することも出来ます。

$smarty->assign();//値渡し
$smarty->assign_by_ref();//参照渡し

$smarty

設定ファイルの読み込み

{config_load file="hoge.conf"}
{#configvalue#}

変数

{$foo}        <-- 単純な変数 (配列やオブジェクト以外) を表示します。
{$foo[4]}     <-- 0から始まるインデックスを持った配列の5番目の要素を表示します。
{$foo.bar}    <-- "bar"というキーに対応する配列の値を表示します。PHP の $foo['bar'] と同じです。
{$foo.$bar}   <-- 変数のキーに対応する配列の値を表示します。PHP の PHP $foo[$bar] と同じです。
{$foo->bar}   <-- オブジェクトのプロパティ "bar"を表示します。
{$foo->bar()} <-- オブジェクトのメソッド"bar"の返り値を表示します。
{#foo#}       <-- configファイル変数"foo"を表示します。
{$smarty.config.foo} <-- {#foo#}と同じです。
{$foo[bar]}   <-- sectionループ内でのみ正当な構文です。{section}の項を参照のこと。
{assign var=foo value='baa'}{$foo} <--  "baa"を表示します。{assign}の項を参照のこと。

その他多くの組み合わせが可能です。

{$foo.bar.baz}
{$foo.$bar.$baz}
{$foo[4].baz}
{$foo[4].$baz}
{$foo.bar.baz[4]}
{$foo->bar($baz,2,$bar)} <-- パラメータを渡します。
{"foo"}       <-- 静的な値を使用できます。

{* サーバ変数 "SERVER_NAME" の内容を表示します ($_SERVER['SERVER_NAME'])*}
{$smarty.server.SERVER_NAME}

関数とか

サニタイズ

ループ

デバッグ

参考