2011-12-27 11 views
1

Catalystのビルドスクリプトを作成しています。これはCatalyst :: Plugin :: Cacheを使用しているため古いアプリケーションです:: FileCacheオプションをサポートする新しいCatalyst :: Plugin :: Cacheの代わりに:: FileCache。 Makefile.PLを使ってビルドを行うとき、Catalyst :: Plugin :: Cache :: FileCacheはもはや取得できないので、私はcpanmを使用できません。 :-(Catalyst :: Plugin :: Cache :: Cacheへのアップグレード:: Catalyst :: Plugin :: Cache :: FileCache

はそれを行うための方法はしかし私のために問題のある証明されたものである見つける。

私は触媒を使用するアプリケーションに変更を加えることができたと::プラグイン::キャッシュが、私は見つけていませんよドキュメントをクリア、またはそれを行うための簡単な方法。

は現在、アプリは、これを使用しています....

__PACKAGE__->config(name => 'Stats', cache =>{storage=>'./tmp'}); 

http://search.cpan.org/~mramberg/Catalyst-Plugin-Cache-FileCache-0.7/lib/Catalyst/Plugin/Cache/FileCache.pmは非推奨モジュールのドキュメントである。

のCatalyst :: Pluginのための新しいドキュメント::キャッシュがここにあります.....私のモデルの一つでhttp://metacpan.org/pod/Catalyst::Plugin::Cache

、私はこれを持っている....

__PACKAGE__->config(
       schema_class => 'Schema::STATS', 
       connect_info => [ 
           'dbi:ODBC:DSN=....;driver=...;Server=...;database=...;RB_CONFIG=...;', 
           'USER', 
           'PASS', 
           {limit_dialect=>'GenericSubQ', 
            on_connect_do => ['set dateformat ymd'], 
            cursor_class => 'DBIx::Class::Cursor::Cached' 
           } 
           ], 
       ); 


sub COMPONENT { 
    my $self = shift->NEXT::COMPONENT(@_); 
    $self->schema->default_resultset_attributes({ cache_object => Cache::FileCache-> 
     new({ namespace => 'Schema::STATS' }), cache_for=>3600}); 
    return $self; 
} 

私が探していますこのアプリには今できるだけ変更を加える必要はありませんが、新しいCatalyst :: Plugin :: Cacheに切り替えるのに必要な変更を簡単に行う方法を知っている人は誰ですか?

さらに悪いことに、古いCatalyst :: Plugin :: Cache :: FileCacheソースをパッケージ化してインストールすることができますが、新しいものを使用するより簡単な方法があると思っていました。

多くの感謝! Janie

答えて

2
__PACKAGE__->config(
    'Plugin::Cache' => { 
    backends => { 
     default => { 
     class => "Cache::FileCache", 
     cache_root => "./tmp", 
     namespace => "Pick Something", 
    } 
    } 
); 

Plugin::Cache::FileCacheを削除し、Plugin::Cacheを追加すると、あなたが道の約90%を取得する必要があります。 $c->cacheは期待通りに動作し、バニラCache::FileCacheオブジェクトになります。