PHP_MEMO_テンプレートエンジンSmartyの使い方メモ
1. テンプレートエンジンの役割
- PHPファイルにはHTMLを埋め込むことが出来る
- デザインとロジックが一つのファイルに
- 実際の開発ではデザインはデザイナーが、ロジックはプログラマーが担当
- 分業しづらく、見通しも悪い
- テンプレートエンジンを用いてHTML部分のテンプレートを作成することで、
デザインとロジックの分離を行う。
2. Smartyとは
- 公式サイト :
TOP : PHP Template Engine | Smarty
日本語マニュアル : Smarty マニュアル | Smarty - PHP界隈では広く使われている(らしい)テンプレートエンジン
- 更新時にテンプレートファイルを解釈し、
PHPとして実行可能なファイルとしてコンパイル- 更新がない場合、コンパイルする必要がないため、処理が早くなる
- 最新バージョンはSmarty3.1.30 (2017年8月26日現在)
3. 基本的な利用の流れ
(PHP側)
smartyオブジェクトの生成
$smarty = new Smarty();
assignメソッドを用いてテンプレート内で利用する変数と割り当てるデータを指定
$smarty->assign("key", "data");
(key : テンプレート内で使う変数名, data : keyに割り当てるデータ)- 連想配列によってまとめて指定することも可
$smarty->assign(array("key1"=>"data1", "key2"=>"data2"));
displayメソッドを用いて、使用するテンプレートファイルを選択し、実行
- sample.tplの場合
$smarty->display("sample.tpl");
- sample.tplの場合
(HTMLテンプレート側)
- 「.tpl」拡張子のファイルを編集することになる
- 通常通りHTMLを記述していく
- PHP側から送られてきた変数を利用する場合
{$key}
のように記述- (例)
<title>{$key}</title>
と記述すると内部では
<title>data</title>
のように処理される