9) テンプレートエンジン-変数を表示する
前回は変数を表示するサンプルを作成しました。今回は、変数をSmartyで表示する方法を解説します。
インターネットリサーチ・コンサルティング・企画、ウェブ翻訳から、Web制作、システム開発までオープンソース・ネットワークビジネスを提供
前回のソースコード(index.php)を振り返ってみます。(3)で「JFE-TEC」という文字列をassignメソッドでTemplate側に受け渡しています。Templateでは「{$str}」で参照できます。
<?php
require_once(‘Smarty.class.php'); ---(1)
$smarty = new Smarty; ---(2)
$smarty->assign('str', 'JFE-TEC'); ---(3)
$smarty->display('index.tpl'); ---(4)
?>
このassainメソッドの第2引数に、変数を指定することができます。では、index.phpとindex.tplを変数に対応させて見ましょう。
index.phpファイルの内容は以下になります。
<?php
require_once(‘Smarty.class.php'); ---(1)
$smarty = new Smarty; ---(2)
$today = date(‘Y/m/d’); ---(3)
$smarty->assign('str', $today); ---(4)
$smarty->display('index.tpl'); ---(5)
?>
(1):Smartyクラスを読み込みます
(2):インスタンスを生成します
(3):今日の日付を取得します
(4):$today変数を割当てます
(5):テンプレートファイル「index.tpl」を読み込みます。
index.tplファイルの内容は以下になります。
<html>
<head>
<title>Smarty サンプル</title>
</head>
<body>
今日は {$str} です。 ---(1)
</body>
</html>
(1):変数はHTML内に{}で囲んで埋め込みます。
ブラウザでアクセスすると「今日は 年/月/日 です。」と表示されます。

assignメソッドは、文字列以外にも変数や配列、オブジェクトまでも受け渡すことが可能です。
関連キーワード


