まずは、お約束の"Hello World"を表示する、プログラムをつくってみます。
まずは、お約束の"Hello World"を表示する、プログラムをつくってみます。
最初にテンプレートを作成します。
Smartyの場合、展開する変数を{$key_word}の形で書いてあげます。このkey_wordはphpプログラム側で割り付けます。コメントを書きたい場合は、{* *}で括ります。このコメントは展開後には表示されません。
<?xml version="1.0" encoding="EUC-JP"?> <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="ja" lang="ja"> <head> {* Smartyのコメントはこのような形式で書くことが出来ます。 *} {* コメントは展開されたときに削除されます *} <!-- もちろんHTMLのコメントも書けます --> <title>{$title}</title> <meta http-equiv="Content-Type" content="text/html; charset=EUC-JP"> </head> <body> {* 展開する値は {$key_word}で定義します。 *} <h1>{$title}</h1> {$contents} </body> </html>
次に、テンプレートを制御するphpプログラム(hello.php)を作成します。
プログラム側の基本的な処理は、assign関数でテンプレートに表示したい値や定数を設定し、display関数でHTMLを表示すると言うものです。
<? require_once './class/Smarty/Smarty.class.php'; // Smarty classを読込む $Smarty = new Smarty(); // Smarty classの生成 $Smarty->template_dir = './templates'; // Template Fileを置くディレクトリ $Smarty->compile_dir = './tmp/templates_c'; // コンパイルされたTemplateが置かれるディレクトリ $Smarty->cache_dir = './tmp/cache'; // Templateのキャッシュが格納されるディレクトリ $Smarty->cache = 1; // cacheを有効にする // Templateに定義したキーワードへ値に割り付ける $Smarty->assign('title', 'Hello Worldの表示'); $Smarty->assign('contents', 'Hello World'); // 指定したテンプレートを展開 $Smarty->display('HelloWorld1.tpl'); ?>
Smatyは、テンプレートを一度コンパイルしキャッシュしてから展開するため、次からの表示を高速に行う事が出来ます。最初にこれらのワークエリアのディレクトリとして、以下を指定しています。
このサンプルでは、これらのディレクトリをwebサーバのドキュメントルート下に置いていますが、運用時には安全面から言って、webサーバのドキュメントルート以下には置かない方が良いでしょう。(置いてるけど...)