Cache::Funky in Catalyst
id:tomyheroにCatalystでCache::Funkyをどう使うんだ?と聞かれた。
ま、正直どう使うのが正解なのか良く分からないんだけど、modelで実装してみた。
package MyApp:Web::M::kopugDB; use strict; use base 'Catalyst::Model::DBIC::Schema'; use NEXT; __PACKAGE__->config( schema_class => 'MyDB::Schema', connect_info => [ ], ); sub new { my ( $class, $c, @args ) = @_; my $s = $class->NEXT::new( $c, @args ); $c->model('MyCache')->mk_cache( $s->schema ); return $s; }
package MyApp::Web::M::MyCache; use strict; use warnings; use base qw( Catalyst::Model Cache::Funky ); __PACKAGE__->setup( 'Storage::Simple' => {} ); sub mk_cache { my $s = shift; my $schema = shift; __PACKAGE__->register( 'foo', sub { $schema->resultset('Bookmarks') ->search({}); } ); }
適当にCでこんな感じで取れた。
sub hoge:Local { my ( $s, $c ) = @_; $c->model('MyCache')->foo; }
別にModelにしなくても MyApp::MyCache とか作ってそいつをC内でuseして使ってもいいのかも。