Sifter 1.1.5 (freeware)
A simple and functional (and free) template engine for PHP/Perl
シンプルで機能的なPHP/Perl/Ruby用のテンプレートエンジンです。
導入のしやすさと、簡潔なテンプレートが特徴です。
条件分岐やループ(繰り返し)、外部テンプレートの読み込み、フォーム要素への値の埋め込みなど、機能も豊富です。
また、PHP版、Perl版、Ruby版で同一のテンプレートを使用できるので、環境によって使い分けることができます。
詳しい使用方法はreferenceの各項目を参照してください。
PHP5、PHP4版 [download] (14.8KB)
Perl版 [download] (9.2KB)
Ruby版 [download] (8.0KB)
confirmed environments
下記の環境で動作確認済みです。
- PHP 4.4.4、4.4.7、5.2.2、5.2.4
- Perl 5.00503、5.8.1、5.8.6、5.8.8
- Ruby 1.8.6
installation
ダウンロードしたアーカイブを解凍し、Sifter.php(PHP5版)、Sifter.php4(PHP4版)、Sifter.pm(Perl版)またはSifter.rb(Ruby版)を任意の場所に設置してください。
sampleフォルダには、使用例が収録されています。
instruction
Sifterのテンプレートは簡潔です。
テンプレートは、スクリプトで指定した変数の値に置き換わる「置換タグ」({〜})、条件分岐や繰り返しなどの動作を指定する「制御タグ」(<!--@〜-->)の2種類のタグを使用して記述します。
制御タグはHTMLのコメントの形式なので、DreamweaverやGoLiveなどのツールでもテンプレートの編集が可能です。
テンプレート:
foo = {foo}
<!--@IF({condition}=='true')-->
OK
<!--@END_IF-->
<!--@LOOP(array)-->
loop = {loop}
<!--@END_LOOP-->
スクリプトも簡潔です。
Sifterオブジェクトを作成したら、set_varメソッドで変数を設定し、テンプレートファイル名を指定してdisplayメソッドを呼ぶだけです。
スクリプト(例はPHP版。Perl版、Ruby版もほぼ同様です):
<?php
require('Sifter.php');
$template = new Sifter;
$template->set_var('foo', 'bar');
$template->set_var('condition', 'true');
$template->set_var('array', array(array('loop'=>1), array('loop'=>2), array('loop'=>3)));
$template->display('sample.tmpl');
?>
実行結果:
foo = bar
OK
loop = 1
loop = 2
loop = 3
詳しいテンプレート・スクリプトの記述方法はreferenceの各項目を参照してください。
reference
license
history
| 2008/01/06 | 1.1.5 |
Ruby版を公開しました。 置換タグで、クオーテーション、バックスラッシュ、改行をエスケープするオプションを追加しました。 置換タグで、オプションの記述方法を変更しました。 |
|---|---|---|
| 2007/12/14 | 1.1.4 |
StrictなPHP5に対応しました。PHP4版はSifter.php4に分岐しました。 LOOPでELSEを使用したときの不具合を修正しました。 EMBEDで大文字のタグへの埋め込み時の不具合を修正しました。 PHP版で、IF, ELSE, ?の条件式で「~」演算子を使用したときの不具合を修正しました。 PHP版で、ELSE, ?の条件式として「0」を使用したときの不具合を修正しました。 |
| 2007/08/26 | 1.1.3 |
制御タグで、?(三項条件演算子風の記述)が使用可能になりました。 PHP版で、警告が表示されていた不具合を修正しました。 |
| 2007/08/03 | 1.1.2 |
処理速度を改善しました。(a little...) PHP版で、<input>への埋め込み時の不具合を修正しました。 |
| 2007/03/31 | 1.1.1 |
Perl 5.00503で動作するようになりました。 置換タグで、改行文字を<br />に変換するオプションを追加しました。 set_var、append_varで、convert_htmlの省略値をtrueに変更しました。 PHP版で、<textarea>への埋め込み時の不具合を修正しました。 |
| 2007/03/03 | 1.1.0 | 公開。 |
不具合が発生した場合はPHP/Perl/Rubyのバージョンとともにfeedbackからお知らせいただけると助かります。