2010年5月6日木曜日

Twig?

PHP向けテンプレートエンジンである、Twig。

その出自から、symphonyというフレームワークと

相性がいいとは思うのですが、

別にsymphonyでなくとも使いたいなあと思い、

最近、少し研究しています。



サンプルを見ていると、

変数をassignしてrenderする方法はたくさん見つかりますが、

クラスのインスタンスをassignして

テンプレート側でクラスメソッドを実行するのって

あまりサンプルを見かけることがなかったのですが、

直感的に出来るハズだと思い、やってみました。


呼ばれるクラス。
class vivatest
{
    public function find($param = 0)
    {
        echo "this is vivatest's find method. ( $param ) <br />";
    }
}



クラスのインスタンスをテンプレートに埋め込む処理。
    $testcls = new vivatest();

(・・色々、省略。詳しくは、Twigのサイトでサンプル拾ってください・・)

    $template = $twig->loadTemplate('samplehtml');
    echo $template->render(array('vivatest' => $testcls));



テンプレート。
<html>
<title>title</title>
</html>
<body>
<p>{{ vivatest.find() }} {{ vivatest.find(1) }} {{ vivatest.find('x') }}</p>
</body>



実行結果。
this is vivatest's find method. ( 0 )
this is vivatest's find method. ( 1 )
this is vivatest's find method. ( x )




・・・別に、何のことはなかったですね。



直感的に「こうするんじゃないかな?」と思った方法で、

ちゃんと実行することが出来ました。

0 件のコメント:

コメントを投稿

どうかお気軽にコメント頂ければ幸いです。