Catalyst::Plugin::CacheのCacheのsetupの流れ

Catalyst::Plugin::Cacheから抜粋。

->setup
->NEXT::setup
->setup_cache_backends
->NEXT::setup_cache_backends
->setup_generic_cache_backend
if ( $class = delete $config{'class'} ) {
->setup_cache_backend_by_class
->register_cache_backend
}
elsif ( $store = delete $config{'store'}
|| $app->default_cache_store  ) {
->setup_${store}_cache_backends
->register_cache_backend
\}

大体こんな感じ。

Cacheに使えるobjectは->can('get')->can('set')->can('remove')がすべて真になるオブジェクト。

あと->setup_cache_backend_by_classは指定したクラスのインスタンスを作るんだけど、->setup_generic_cache_backendからsetup_cache_backend_by_class呼び出すことろでhash referenceを渡してるっぽいので、設定ファイルで指定できるクラスはコンストラクタの引数にhash referenceが指定できるものに限られてくる。まあこのあたり書き換えちゃえばなんとかなるだろうけど。

にしてもCatalyst::Plugin::Cacheのコードは読みづらいw

#FIXME

nyarla が大体

Scrapbox でコメントや意見を書く