Perl 从Catalyst::Plugin::Cache::FileCache升级到Catalyst::Plugin::Cache
我正在编写一个构建脚本来构建Catalyst应用程序,显然这是一个较旧的应用程序,因为它使用Catalyst::Plugin::Cache::FileCache,而不是支持FileCache选项的较新Catalyst::Plugin::Cache。当通过Makefile.PL进行构建时,我不能使用cpanm,因为Catalyst::Plugin::Cache::FileCache不再可检索:-( 但事实证明,找到这样做的方法对我来说是有问题的 我想我可以对应用程序进行更改以使用Catalyst::Plugin::Cache,但我觉得文档不够清晰,也没有任何简单的方法 当前应用程序使用此Perl 从Catalyst::Plugin::Cache::FileCache升级到Catalyst::Plugin::Cache,perl,caching,catalyst,Perl,Caching,Catalyst,我正在编写一个构建脚本来构建Catalyst应用程序,显然这是一个较旧的应用程序,因为它使用Catalyst::Plugin::Cache::FileCache,而不是支持FileCache选项的较新Catalyst::Plugin::Cache。当通过Makefile.PL进行构建时,我不能使用cpanm,因为Catalyst::Plugin::Cache::FileCache不再可检索:-( 但事实证明,找到这样做的方法对我来说是有问题的 我想我可以对应用程序进行更改以使用Catalyst:
__PACKAGE__->config( name => 'Stats', cache =>{storage=>'./tmp'} );
是不推荐使用的模块的文档
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源代码并安装它,但我希望有一种更简单的方法来使用新的
非常感谢!
珍妮
删除Plugin::Cache::FileCache
并添加Plugin::Cache
应该可以让您达到90%的效果。$c->Cache
将按照您的预期继续工作,它将是一个普通的Cache::FileCache
对象
__PACKAGE__->config(
'Plugin::Cache' => {
backends => {
default => {
class => "Cache::FileCache",
cache_root => "./tmp",
namespace => "Pick Something",
}
}
);