Обновление до Catalyst :: Plugin :: Cache от Catalyst :: Plugin :: Cache :: FileCache - PullRequest
1 голос
/ 27 декабря 2011

Я пишу сценарий сборки для создания приложения Catalyst, и, очевидно, это старое приложение, поскольку оно использует Catalyst :: Plugin :: Cache :: FileCache вместо более нового Catalyst :: Plugin :: Cache, который поддерживает параметр FileCache.При сборке через 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 исходный код и установить его, но я надеялся, что будет более простой способ использоватьновый.

Большое спасибо! Джени

1 Ответ

2 голосов
/ 27 декабря 2011
__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 объект.

...