Hatena::Grouptenmon

ひこにっき

 | 

2012.02.20

Mojoliciousのhookを使う

17:10

MojoliciousのControllerをDumpしてみたらbefore_dispathとかもうあからさまにhookなものを見つけてしまった。調べてみたらちゃんとドキュメントにも書いてあった…。ということで、デフォルトのstashに何かを突っ込むのは、以下のようにも書けた。

package MyApp;
use Mojo::Base 'Mojoicious';
use DateTime;

sub startup {
    my $self = shift;
    $self->hook( before_dispatch => sub {
        shift->stash( now => DateTime->now );
    });
    my $r = $self->routes;
    $r->route('/:controller/:action')->to('default#default');
}

1;

コード的にもほとんど変わらないけれど、こっちのほうが素直な感じがする。

トラックバック - http://tenmon.g.hatena.ne.jp/aql/20120220
 |