Smartyは、PHPで実装され、主にPHPアプリケーションで使用されるテンプレートエンジンである。テンプレート自体のキャッシュ機能を有している。ライセンスはLGPL。
Smartyのテンプレート {$title_text|escape} {$body_html} この{$title_text}や{$body_html}に割り当てるにはPHP側で: $smarty->assign('title_text', '文字列'); と記述する必要がある。
<!DOCTYPE html> <html lang="ja"> <head> <meta charset="utf-8"> <title>{$title_text|escape}</title> </head>
<body> {* これはコメントです。コンパイル時にはHTML出力されません。 *} {$body_html} </body> <!-- これはコメントです。コンパイル時にはHTML出力されません。 --> </html>
特徴 高速に動作するhttp://www.smarty.net/docs/ja/what.is.smarty.tpl 独自の関数や修飾子を拡張可能 テンプレートの継承
バージョン2からバージョン3への変更点 バージョン2では以下のメンバ変数がpublicになっておりアクセスできるようになっているが、バージョン3からはprotectedになっていてアクセスできないようになっている: $template_dir $config_dir $plugins_dir $cache_dir $compile_dir その代わり以下のプロパティやメソッドを使うことでバージョン2と同じようになる: TemplateDir ConfigDir PluginsDir CompileDir CacheDir ・public function setTemplateDir($template_dir, $isConfig = false) 引数:<$template_dir>テンプレートソースのディレクトリ <$isConfig> config_dir を使うかどうかの指定(true:使用する false:使用しない) ・public function setConfigDir($config_dir) 引数:<$config_dir> 設定ファイルのディレクトリ ・public function setPluginsDir($plugins_dir) 引数:<$plugins_dir> プラグインのディレクトリ ・public function setCompileDir($compile_dir) 引数:<$compile_dir>コンパイル済みテンプレートを貯めておくためのディレクトリ ・public function setCacheDir($cache_dir) 引数:<$cache_dir> テンプレートのキャッシュを貯めておくためのディレクトリ
脚注
関連項目 Twig - Symfonyで採用されている同様のテンプレートエンジン
外部リンク Smarty : Template Engine Smarty日本語マニュアル