何が良いのかあまり共感を呼び辛いかもしれませんが、テンプレートエンジンを作りました。
特徴:
- 新しいテンプレ文法覚えたくない → テンプレがPHP
- 新しい使い方覚えたくない → Smartyと使い方(メソッド)が同じ
- chmodしたくない → キャッシュしない(一時ファイルを作らない)
- 複雑なものは使いたくない → 15行
という後ろ向きなライブラリです。下記、使い方です。
テンプレ:
<html>
<head>
<title><?=$title?></title>
</head>
<body>
<h1><?=$title?><h1>
<hr />
<h2>Methods</2>
<ul>
<?foreach ($methods as $method):?>
<li><?=$method?></li>
<?endforeach;?>
</ul>
</body>
</html>
PHP:
<?php
include_once("Raw.php");
$raw =& new Raw();
$raw->assign("title", "Raw Template Engine");
$raw->assign("methods", array("assign", "assign_by_ref", "fetch", "display"));
$raw->display("index.php");
ライブラリ:
<?php
//
// Raw Template Engine - the template engine using raw php.
//
// Copyright (C) 2005 Masaki Komagata <komagata@p0t.jp>
// All rights reserved.
// This is free software with ABSOLUTELY NO WARRANTY.
//
// You can redistribute it and/or modify it under the terms of
// the PHP License, version 3.0.
//
class Raw {
var $template_dir = "templates/";
var $template_vars = array();
function assign($name, $value) { $this->template_vars[$name] = $value; }
function assign_by_ref($name, &$value) { $this->template_vars[$name] =& $value; }
function display($template) { echo $this->fetch($template); }
function fetch($template) {
extract($this->template_vars);
ob_start();
include($this->template_dir.$template);
$result = ob_get_contents();
ob_end_clean();
return $result;
}
}
表示:
賢明なみなさまのこと、一瞥しただけで全てが把握できたことでしょう。
やっつけ仕事や組み込み用途に!