PHPでWebアプリケーションを作るときに私はよく、PEARのHTML_Template_Sigmaを使う。
Smartyなども試したが、やっぱりこのテンプレートが一番使いやすい。
というのも、このテンプレートを使うとほかのテンプレートとちょっと違った便利な使い方ができるからだ。
なので、ほかの人にももっと使ってほしいと思い紹介します。
文法などはHTML_Template_Sigmaのサイトを見ればわかると思いますので、
私が便利だなとおもう点や、使い方を紹介していきたいとおもいます。
1. HTMLに限りなく近いのでHTMLエディタなどを使っても大丈夫。
これ、結構重要です。たいていのテンプレートはifや、forなどの特別な記述方法がありますが、このテンプレートはありません。
その代わり、ifや、forはプログラム側で操作しなけれないけません。これは、テンプレートをプログラマが触らない場合には大変重要です。
結局、特別な文法があるとせっかくHTMLのテンプレートを使ってもプログラマがそれを修正することになり、だったら、素のphpで十分だったりします。
ちなみに、HTML_Template_Sigmaでは、ifやforを使いたい場合には<!- BEGIN BLOCK –>xxxxxx<!– END BLOCK –>のように書き、
このブロック単位でそれを表示するのか?もしくは繰り返して表示するのかなどを制御します。
したがって、テンプレート側ではifでもforでも書き方は関係ありません。これはHTMLの記述者とプログラマが分かれているという前提では結構便利です。
勝手に変更されませんし。
2.変数に$がない!
こんなつまらないことですが、$がないということは非常に重要です。 すべての変数に$がつくのであれいいのですが、たいていは違います。
たとえばsmartyの文法ですが、
{foreach from=$data item=”item” key=”key” name=”loop”}
{assign var=”ret” value=”$val” }
など、$があったり、なかったり。意味が違うので当然ですが。
プログラマに理解せよというのは問題ありませんが、デザイナにこれを理解せよというのはちょっと無理があります。
その点、HTML_Template_Sigmaは{var}という感じで{と}でくくれば、そこが置き換わる文字です。
まあ、ここまでHTML_Template_Sigmaは要するに貧弱なので素晴らしいという書き方になってしまっていると思いますが、
まさに、HTMLテンプレートの目的がHTMLとプログラムの完全な分離を目指しているわけなのですが、現実は完全はありません。
あとは、分離の比率がどの程度にするか?ということですが、HTML_Template_Sigmaはかなり高いレベルで分離ができると思います。
その代わり、プログラムのほうにその処理が回ってしまうのですが・・・・
でも、プログラマにもHTML_Template_Sigmaならではの便利なこともあるのです。
今後、そのtipsなどを紹介したいと思います。


