smartyで
$obj->method()
を呼べるのかと思って
{$obj->method()}
と書いたら普通に実行できた。
たとえばMVCなフレームワークでSmartyを実行しているとき、
コントローラーに
public function test()
{
return 'テスト';
}
というメソッドを作っておく。
で、Smartyにコントローラーオブジェクトを渡しておいて、
($controllerにその参照が渡っているものとする)
{$controller->test()}
と記述すればコントローラーのメソッド「test」が実行され、
「テスト」と出力される。
返り値がHTMLとして出力されるようだ。
引数も問題なく渡せた。
が引数には落とし穴があった。
{$obj->method( 'test', 'test2' )}
などとすると、エラーが起きる。
引数中にかっこがあるとパースエラーが起きるらしい。
可読性は低くなるが、
{$obj->method('test','test2')}
と記述する必要がある。
まぁ、そもそもViewにそんなもん書いていいもんかという話だが、
便利なので、覚書。
Comment feed