でも、方法がちゃんと用意されているのですよ。
ほんのちょっとコードを書くだけです。 プラグインとしてね。
公式ドキュメント http://www.smarty.net/docsv2/ja/plugins.resources.tpl
これでさくっと完成します。
Exampleをコピペしてプラグインとして読み込み、システムにあったコーディングをするだけです。
smarty_resource_db_sourceとsmarty_resource_db_timestampのみ書き換えで、後の2つはダミーです。(使わないけど書かないといけないだけ)
メモリから読み込みなので dbではなくmemoryにしましょう。
smarty_resource_memory_source というように。 残る3つも同様にです。
smartyに渡すファイル名のフォーマットは、「type:filename」です。
通常はtypeを省略していますよね。 省略するとtype は file になります。
今回の例では、「memory:filename」にしてあげれば、プラグイン側の処理をしてくれます。
filenameは、使わなければダミー値を与えればよいです。
あとは、smartyオブジェクトにテンプレート内容を渡してあげれば完成です。
$smarty->templateSource = テンプレート内容;
この場合のsmarty_resource_db_source()の内容例としては
$tpl_source = $smarty->templateSource;
return true;
この2行にするだけで動きます。
smartyをシステムに組み込んでいる人なら朝飯前だと思います。