【问题标题】:Upgrading to Catalyst::Plugin::Cache from Catalyst::Plugin::Cache::FileCache从 Catalyst::Plugin::Cache::FileCache 升级到 Catalyst::Plugin::Cache
【发布时间】:2016-02-03 12:36:08
【问题描述】:

我正在编写一个构建脚本来构建一个 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'} );

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

在我的一个模型中,我有这个....

__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 源并安装它,但我希望有一种更简单的方法来使用新的源。

非常感谢! 珍妮

【问题讨论】:

    标签: perl caching catalyst


    【解决方案1】:
    __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 对象。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-01-18
      • 2010-11-08
      • 1970-01-01
      • 2013-06-26
      • 2014-01-07
      • 2013-07-07
      • 2010-11-13
      相关资源
      最近更新 更多