Smarty:基本的な使い方
●Smarty クラス
先の sample.php を見ながら読んでください。
Smarty は、
Smarty.class.php にある Smarty クラスを使って、
機能を実現します。
まず、
require_once("Smarty/libs/Smarty.class.php");
で Smarty クラスを読み込みます。
次に、
$o_Smarty = new Smarty();
で、Smarty のインスタンス $o_Smarty を生成します。
以降、$o_Smarty を使って、具体的な設定を行います。
●assign
テンプレート・ファイルに、PHP の情報を伝えます。
$o_Smarty->assign(変数名, 値);
の形式です。
assign で、
PHP で作成した情報(='値') を '変数名' に格納します。
こうして渡された変数は、
テンプレート・ファイル内で、
{$変数名}
で参照します。
sample.php では、
$title = "List title:";
$o_Smarty->assign("title", $title);
sample.tpl では、
{$title}
となります。
変数には、配列を渡す事もできます。
設定方法は、上記と同じです。
●display
テンプレート・ファイルを変換して、目的の PHP ファイルを生成します。
$o_Smarty->display(テンプレート・ファイル名);
の形式です。
デフォルトの設定では、
display を実行するファイルの直下 templates ディレクトリのファイルを採用します。
sample.php では、
$o_Smarty->display('sample.tpl');
です。
以上で、
とりあえずは、Smarty を使う事ができます。
デフォルトでは、
Smarty のインスタンスを生成するPHP のコードや、テンプレートファイルを
Apache の htdocs ディレクトリに置くことになります。
全てのファイルをユーザーに見せてしまう危険があるわけです。
templates ディレクトリの置き場所は、
$o_Smarty->template_dir(ディレクトリ名);
で変更できます。
セキュリティの観点で言えば、
PHP とテンプレート・ファイルは htdocs の外に置き、
$o_Smarty->template_dir を使って、
生成した結果の PHP コードだけを htdocs 以下に配置すると安全です。