首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >从Catalyst::Plugin::Cache::FileCache升级到Catalyst::Plugin::Cache

从Catalyst::Plugin::Cache::FileCache升级到Catalyst::Plugin::Cache
EN

Stack Overflow用户
提问于 2011-12-28 02:13:11
回答 1查看 184关注 0票数 1

我正在编写一个构建脚本来构建Catalyst应用程序,显然它是一个较旧的应用程序,因为它使用的是Catalyst::Plugin::Cache::FileCache,而不是支持FileCache选项的较新的Catalyst::Plugin::Cache。当通过Makefile.PL进行构建时,我不能使用cpanm,因为cpanm不再是可检索的。:-(

然而,找到做到这一点的方法对我来说是个问题。

我想我可以更改应用程序以使用Catalyst::Plugin::Cache,但我发现文档并不清楚,或者没有任何简单的方法来做到这一点。

目前,该应用程序使用的是...

代码语言:javascript
复制
__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::Cache的新文档在这里.....http://metacpan.org/pod/Catalyst::Plugin::Cache

在我的一个模型里,我有这个……

代码语言:javascript
复制
__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源代码并安装它,但我希望有一种更简单的方式来使用新的。

非常感谢!珍妮

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-28 02:37:20

代码语言:javascript
复制
__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对象。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8647818

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档