MW211 EXIT

devlog
Smarty/入門
2011年12月21日
Smarty導入方法はざっとこんな感じ。

Smarty一式を公式サイトからダウンロードし、所定(任意)の位置に置き、
Smartyを使用するPHPプログラムから「Smarty.class.php」をアサインする。
┌──────────────────────────────────────┐
│require_once '…/Smarty/Smarty.class.php';                                  │
└──────────────────────────────────────┘
後は、「new Smarty」でオブジェクトをつくり、assignメソッドで値を設定し
displayメソッドでテンプレートを呼び出すと表示される。
┌──────────────────────────────────────┐
│$smarty = new Smarty;                                                       │
│$smarty->assign('変数', 値);                                                │
│$smarty->display('テンプレート.tpl');                                       │
└──────────────────────────────────────┘

テンプレートは、通常のHTMLと同じで、「{$変数}」のように指定すると
assignメソッドで設定された値が表示される
┌──────────────────────────────────────┐
│$smarty->assign('変数', '織田信長');                                        │
├──────────────────────────────────────┤
│あなたの名前は「{$変数}」です。                                             │
└──────────────────────────────────────┘
変数について、assignでは$がいらず、テンプレートにはいる違い注意。
また、「{}」の中にSmartyの処理(例えばif文)を書くことにより様々な制御ができる。
なので、テンプレート上にJavaScriptで「function() {処理;}」みたいに
中括弧を一列に並べて書くとSmartyと誤認されエラーとなるので注意。

最後にテンプレートの置き場所だが、以下のような感じでdisplayの前に指定する。
┌──────────────────────────────────────┐
│$smarty->template_dir = '…/templates/';                                    │
│$smarty->compile_dir  = '…/templates_c/';                                  │
│$smarty->config_dir   = '…/configs/';                                      │
│$smarty->cache_dir    = '…/cache/';                                        │
└──────────────────────────────────────┘
「templates」にはテンプレートを置く。
「templates_c」にはSmartyが一時バイナリデータを出力する。
空っぽの場所さえ提供すればいい。
「configs」「cache」も似たようなもんなのだろうか、よくわからない。
ま、上記4つのフォルダを生成して、「templates」にテンプレートを置けばいい
ということだけわかっていればまずはOK。
分類:Smarty