Smartyを使おう2

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ループなど便利な機能が沢山あります!