2011-12-27 15 views
1

我正在編寫構建腳本來構建Catalyst應用程序,顯然它是一個較舊的應用程序,因爲它使用Catalyst :: Plugin :: Cache :: FileCache,而不是新的Catalyst :: Plugin :: Cache,它支持FileCache選項。當通過Makefile.PL進行構建時,我無法使用cpanm,因爲Catalyst :: Plugin :: Cache :: FileCache不再可檢索。 :-(從Catalyst :: Plugin :: 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是已過時的組件文件。

的催化劑::插件的新文檔:: Cache是​​這裏..... 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 :: FileCache源代碼並安裝它,但是我希望只有一種更簡單的方法來使用新的。

非常感謝! 珍妮

回答

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對象。

相關問題