WordPressのテーマやプラグインなどで、テンプレートエンジンを使いたくなることありません?ぼくはけっこうあります。
設定フォームやちょっとした出力など、コード内からecho連発で呼び出すのはスマートではありません。メンテナンス性も最悪です。
とはいえSmartyやTwigなどの大型エンジンはさすがに大きすぎ。そんなときオススメなのが、たった1ファイルで完結しているDiv PHP Template Engineです。
セットアップ不要、ライブラリ不要
Divは本体227KBほどで軽量。SmartyやTwigに比べると極小です。しかもたった1ファイルで、他のライブラリへの依存もないため、非常に小回りが利きます。
使い方はカンタン。
まず表示用テンプレートを作ります。内容さえルールに沿っていれば拡張子はなんでもOK。ぼくはIDEで見やすいので.htmlにしています。公式サイトでは.tplを使っていますね。
文法は公式ページの Documentation を参照のこと。
テンプレートに渡した変数は {$var} として呼び出せます。
h1タイトルなら
<h1>{$title}</h1>
みたいな書き方ですね。
次にダウンロードした本体となる「div.php」を適当なパスに置き、
include_one ‘<<パス>>/div.php’;
として呼びます。
テンプレートを使用したい部分で
echo new div(‘template.html’, array(‘title’ => ‘テストですよ’) ) ;
という構文で呼び出せば、すぐさま出力されます。
先程のテンプレートを使えば、
<h1>テストですよ</h1>
として出力されます。
1ファイルとは思えない充実度
ifでの条件分岐や、柔軟なループ処理も可能です。
さらにテンプレート内変数、計算、空白除去、他のテンプレートのインクルード、PHPマクロなどなど至れり尽くせり!これが1ファイルなんですから驚きです。
デザインとコードがしっかりと分離できますし、メンテナンス性も非常に良くなります。非常に局所的に呼べるので、WordPressのほかのものとカチ合ったりしないのもうれしい。
ちなみにキャッシュ処理などの高速化機構はありません。その代わり意図しない場所にキャッシュディレクトリを作ったりすることもないので安心です。
WTS的まとめ
プラグインやテンプレートの組み込みにすごく向いているエンジンです!最近は小さなアプリケーション(ちょっとした検索サイトや部品リストなど)は、Twigを使わずにDivで行くことが良くあります。機能の不足はほとんど感じないほど完成度が高いです。