我正在编写构建脚本来构建Catalyst应用程序,显然它是一个较旧的应用程序,因为它使用Catalyst :: Plugin :: Cache :: FileCache而不是支持FileCache选项的较新的Catalyst :: Plugin :: Cache。通过Makefile.PL进行构建时,我无法使用cpanm,因为Catalyst :: Plugin :: Cache :: FileCache不再可检索。 : - (
找到做到这一点的方法虽然对我来说是个问题。
我想我可以对应用程序进行更改以使用Catalyst :: Plugin :: Cache,但我没有找到明确的文档,或者任何简单的方法。
目前该应用使用此....
__PACKAGE__->config( name => 'Stats', cache =>{storage=>'./tmp'} );
Catalyst :: Plugin :: 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吗?
更糟糕的是,我总是可以打包旧的Catalyst :: Plugin :: Cache :: FileCache源并安装它,但我希望有一种更简单的方法来使用新的。
非常感谢! 珍妮
答案 0 :(得分: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
对象。