テンプレートエンジンPHPOOT0.3のリリース
このところ集中して作っていたテンプレートエンジンPHPOOTの新しいバージョンをリリースする。
http://sourceforge.jp/projects/phpoot/
これまでのバージョンはまったく自作だったわけだが、仕様がうまくなく、自分でも使わなくなっていた。
このバージョンでは仕様をRuby用のテンプレートシステムであるAmrita ( http://www.brain-tokyo.jp/research/amrita/index_ja.html )を参考にシンプルなものに設定し、実装はREARのXML_HTMLSaxライブラリを使って行った。
Amritaの仕様はifといった条件文が無いのがシンプルでいいと感じた。データがnullもしくはfalseのとき該当部分を表示せず、trueの時はテンプレートに記述の内容を、文字列のときそのデータを表示するという条件があるのみだ。
私がテンプレートシステムを使いたいのは、プログラムを知らないデザイナーにサイトのデザインをして欲しいからだ。だから、テンプレートから複雑な制御構造を排除したい。そうすれば、普通のHTMLエディタで作業できるし。また、複雑な画面表示ロジックが欲しいときは、自分がPHPでかけばいいのだ。
もちろんPHPOOTとAmritaとは仕様の異なる点はある。
- id属性でなく、varという独自の属性をデータの指定に使う。
- XHTMLのみをターゲットとする。タグは必ず閉じられて、整形式のXMLであることを仮定する。
- 属性中へのデータ埋め込みの方法として、{data}というような形式を属性値につかう。
- 表示前にPHPへのコンパイルを行う。
- 「#alt」といった#で始まる属性値で、拡張機能をもつ。#altで、交互に該当部分を表示する。行ごとに、classを変えたりするときに便利。#numで、ループしたデータの番号を表示。番号つきのリストを表示するときに便利か。
ベータですので、まだまだ安定はしてないかもしれませんが、これから使い込んでみよう。