Smartyを使おうで作成したMySmartyを使ってHTMLを出力しよう。
まずは、テンプレートファイルを用意する。テンプレートファイルファイルは内容はHTMLだが、Smartyタグと呼ばれるコードを入れることでSmartyの機能を使用することが出来る。
では、簡単なテンプレートを一つ
<html>
<head>
<title>Smartyテスト</title>
</head>
<body>
<div>表示時間は{$smarty.now}</div>
<div>読みやすく{$smarty.now|date_format:”%Y年%m月%d日 %H時%M分%S秒”}</div>
</body>
</html>
{$smarty.now}に時間のデータが表示されることになります。
{$smarty.now|date_format:”%Y年%m月%d日 %H時%M分%S秒”}はxxxx年xx月xx日 xx時xx分xx秒に変換して出力します。
上記のテンプレートファイルをMySmartyのtemplate_dirで指定したディレクトリに”smarty_now.tpl”というファイル名で保存します。
拡張子をhtmlではなく、tplにするにはエディッターによってはtplをSmartyテンプレートとして認識し、色分け入力補佐などが受けれるためです。
また、制御の入ってないhtmlと区別するためにも便利です。
さて、template_dirに保存したsmarty_now.tplを表示してみましょう。
コードは下記のようになります
<?php
require_once ‘MySmarty.php’;
$mySmarty = new MySmarty();
$mySmarty->display( ‘smarty_now.tpl’ );
?>
これだけでPHPのソースにHTMLを記述すること無く、ページを表示することが出来たと思います。
Smartyの様な機能をテンプレートエンジンといいます。Smarty以外にもテンプレートエンジンはいくつも存在します、別にどれを使っても良いのですが、Smartyは今かなりメジャーのテンプレートエンジンです。覚えていても損はないと思います。
今回は、時間を表示するだけでしたがSmartyにはプラグイン関数を追加したり、変数を追加したり、if分岐,foreachループなど便利な機能が沢山あります!