KamuiでText::Xslate
nekokakさんのWAF Kamuiでは標準のViewにTMTとTTが使えるんですが、
TXを使用してみたくて試してみました。
基本的にはTTのコードをこぴってるだけです。
package MyAPP::View::TX; use Kamui; use base 'Kamui::View'; use Text::Xslate; use File::Spec; use Encode; sub render { my ($class, $context) = @_; my $template = $context->load_template || $context->guess_filename; my $tx = Text::Xslate->new( syntax => 'TTerse', module => ['Text::Xslate::Bridge::TT2Like'], path => [ '.', File::Spec->catfile($context->conf->{view}->{tx}->{path}) ], cache => 1, cache_dir => '/tmp/' . $ENV{USER} . "/", function => $context->conf->{view}->{tx}->{function}, ); my $output = $tx->render( $template, +{ %{ $context->stash }, c => $context, } ) or die "error: $@"; my $res = $context->res; $res->status('200'); $res->body($output); $res->headers([ 'Content-Type' => 'text/html' ]); $res; } 1;
こんなんで動きました。
すごく単純なCGIで試したんですがTTから変更すると
体感できるほど早くなりました。
KamuiとSkinnyとXslateお勧めです
(Kamuiは初心者の人にはインストールの敷居高いかもしれないけど)
追記:nekokakさんにTffanyって教えて頂いたのですが
たしかにですね。YAPCで名前だけ聞いてて使ってなかったんでやってみないと