Smarty

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日本語マニュアル

Category:テンプレートエンジン
Category:PHPでプログラムされた自由ソフトウェア