Home >PHP で .php ファイルと Smarty のファイルを1つにまとめる方法

PHP で .php ファイルと Smarty のファイルを1つにまとめる方法

  • 2006-04-14 (金)

PHP で .php ファイルと Smarty のファイルを1つにまとめる方法の紹介です。

PHP でテンプレートとして Smarty を使用すると、PHPファイルの他にSmartyのテンプレートファイルが必要となる。通常はそれでかまわないのであるが、何らかの事情により、「Smarty は使いたい、でもファイルは1つにまとめたい」というような場合に、1つにする方法があります。

function var_template($name, &$source, &$smarty)
{$source = $name; return TRUE;}

function var_timestamp($name, &$timestamp, &$smarty)
{return filemtime(__FILE__);}

function var_secure($name, &$smarty)
{return TRUE;}

function var_trusted($name, &$smarty)
{}

$t = new Smarty;
$t->register_resource('var', array('var_template', 'var_timestamp', 'var_secure', 'var_trusted'));

$tpl = '<html><head><title>Title</title></head><body>
<h1>{$title|escape}</h1>
</body></html>';

$t->assign('title', 'hoge');
$t->display('tpl:'.$tpl);

注意点としては、上記のソースコードの $tpl をシングルクォートでくくることです。でないと、{$title} がPHPのレベルで変換されることになり、Smarty上の変数とみなされないからです。ただし、$tpl の中身でシングルクォートを使用することができなくなります。$tpl の中で例えば、onclick ハンドラ内で文字列を扱うようなJavaScriptを記述したい場合、不便となります。onclick="alert('OK')" とかかが記述できなくなります。

Home > PHP で .php ファイルと Smarty のファイルを1つにまとめる方法

Search
Feeds

Page Top