2006年02月04日
基本的な流れ
プログラムからの値を表示出来たので、流れを簡単に説明します。
マニュアルを熟読すれば、もっと効率良い使い方があるかも知れませんが、私は普段使っている内容しか書けないので、その範囲内ということで。
まず、PHPプログラムのほうですが、
index.php
<?require_once "libs/Smarty.class.php"; (1)
$name = "矢口真里"; (2)
$smarty = new Smarty; (3)
$smarty->clear_cache('index.html'); (4)
$smarty->assign("namae",$name); (5)
$smarty->display('index.html'); (6)
?>
(1) require_once "libs/Smarty.class.php";
smartyを使う上で必ず必要な宣言です。これがないとsmartyは使えません。
(2) $name = "矢口真里";
これは単に、$nameという変数に「矢口真里」という値を入れているだけです。もし、データベースを読むような処理があるならば、ここにその処理を書くことになります。
(3) $smarty = new Smarty;
smartyクラスを生成します。smartyは Smarty というクラスで提供されています。(1)のSmarty.class.phpでピンと来るものがありますが、中を見てみると、クラスの定義がしてあります。SmartyもPHPで提供されています。
(4) $smarty->clear_cache('index.html');
smartyのキャッシュをクリアします。
ハテ??
実はsmartyはキャッシュをいう機能をもっていて、表示のためのオーバーヘッドを軽減しています。ちょうど、ブラウザがキャッシュを持っているイメージと同じです。
キャッシュをクリアすることで、常に新しい内容で表示されます。
(5) $smarty->assign("namae",$name);
これがPHPのプログラムの値をテンプレートに渡すポイントです。$nameは(2)でセットした変数です。
「この変数の内容を namae に出す」
といった解釈になります。
(6) $smarty->display('index.html');
index.htmlというテンプレートを表示します。
で、そのindex.htmlというテンプレートですが、
templates/index.html
<html>
<head>
<title>smarty test</title>
</head>
<body>
smarty テスト!!<br>
<br>
name[{$namae}]
</body>
</html>
$namae というところに(5)で指定したPHPの$nameという値が表示されます。
テンプレートには$をつけて、{$namae}と書きます。
つまり、表示したいPHPの変数 $abc があるとしたら、
$smarty->assign("hogehoge",$abc);
として、テンプレートのほうに
{$hogehoge}
と書きます。
これを繰り返していけば、たくさんの値をテンプレートを通して表示することが出来ます。
2006年02月04日 20:27 | 3.使い方
トラックバック
このエントリーのトラックバックURL:


