2014年04月03日

re: Text::Xslateで未設定の変数を検出する a.k.a Text::Xslate hash_with_default best practice

むかしごろーがText::Xslateで未設定の変数を検出する - Islands in the byte streamで、未定義のテンプレート変数を使おうとしたら警告だすソリューション作ってたけど、それだと [% IF unknown_var %] とかした時に true 扱いになってしまってひどい目に合うので、いい感じにするソリューション書いてみた。

hash_with_default の callback では undef を返しつつ、存在しない事を目立つ感じでレンダリングするかんじ。

で、これは毎回 controller が hash_with_default するのめんどいので Proj::Web::render を生やして Amon2 で透過的に使えるようにしようとおもった。
そして、 tie hash とかアクセスしまくるとパフォーマンスに悪影響あるから本番で動かさないの鉄則ね。

HASH の中の HASH の key も調べたいなら hash_with_default_walker みたいな関数でやればよさそう。

あと Text::Xslate 3.1.2 は if (exists $self->[0]{$key}) すべきところを if (defined $value) してるので、バージョン上がるのまったほうがいい(pull request 投げたので、次のバージョンで治ってる)

Posted by Yappo at 16:31 | Comments (0) | TrackBack

2014年04月01日

Yokohama.PM #10 でひとつ上のmysql について話してきました #yokohamapm

最近ここで色々調べてた、あまり良く知られてない DBD::mysql の便利機能についてまとめて発表してきました。

http://yappo.github.io/talks/2014-yokohamapm10-dbd_mysql/

このへん知っとくとひと皮むけた感じに成長出来ると思います。僕は結局 mysql_use_result だけたまに使ってます。

発表終わった帰り道にZごろうさんとかにに「避け入ってる場にしては内容がむづかしすぎるよ!」と言われました。

Posted by Yappo at 12:41 | Comments (0) | TrackBack