2010年4月8日木曜日

Smarty3はget_template_vars()じゃなくてtpl_vars[key]->value

Smarty3のドキュメントはどこだ!

今日、ある部分の自動化を行っていて、SmartyとControllerとのフレームワークの連携のところのバグをなおしていたんですが、そのバグの原因がtpl_varsが返すのが配列じゃなくてオブジェクトだったということ!Smarty3からはオブジェクト指向を全面に出してるとはどこかで目にしたけど。まさかそこまでオブジェクトにするとは!という感じで、形見の狭い思いでせっせとバグ潰ししてました。get_class_methodsとかってオブジェクト渡したらget_classして自動でクラス名取得して対応しろよ!とか思いませんか?ぶつぶつ...

というか、Smarty3のドキュメントってどこにあるんだろう。正式なものでなくてもいいので、分かりやすいところに置いておいてほしいなー。今日初めてSmarty3の中身のコードを読みました。3秒くらい。こいつか!ってすぐ分かったので、綺麗なコードだと思います。でもドキュメントはほしい。Smarty2との互換性がない部分が多い。

Yzwを作ってるうちに...間違いがいろいろと...

Viewとの連携のところで、View側にすぐさま丸投げすればいいところを、フレームワーク側で一時的に面倒を見てる部分があるんですが、それは間違いだということに気がつきました。さっさとviewに渡してしまって、あとはお前で管理しろよ!ってところはそうした方がいい。他との連携の兼ね合いでフレームワークが仲介をするなら別だけど。こういう仕様の修正をしだせばやっぱり夏頃までは公開できないか...

ちなみに今日はDispatcher兼Router役の20〜30行ほどのクラスに、CakePHPのnamed parameterみたいな(URL中の/page:1/とか)のを取り入れました。あとはpaginatorもどきを作れば、一覧の並べ替えとかはDRYにできるなーとニンマリ企んでいます。

とりあえず、明日、というか今日を乗り切れば、テストフレームワークとの連携も真剣に考えないと。フレームワークにバグがあるだろうから、他の変更の副作用が予想外のところに出た時のために、テストを自動化しとかないと...

0 件のコメント: