CGI::Application::Plugin::CHI

CGI-App plugin for CHI caching interface
Download

CGI::Application::Plugin::CHI Ranking & Summary

Advertisement

  • Rating:
  • License:
  • Perl Artistic License
  • Price:
  • FREE
  • Publisher Name:
  • Mike Friedman
  • Publisher web site:
  • http://search.cpan.org/~friedo/

CGI::Application::Plugin::CHI Tags


CGI::Application::Plugin::CHI Description

CGI-App plugin for CHI caching interface The CGI::Application::Plugin::CHI module exports the following methods into your CGI::Application base class: cache_config, cache_default, cache, and rmcache.CLASS METHODScache_configThis method sets up all your caches and stores their configurations for later retrieval. You can call cache_config in two ways. The simple way sets up a default cache, and takes a single hashref which is passed directly to CHI: __PACKAGE__->cache_config( { driver => 'File', cache_root => '/path/to/nowhere' } )Once it's set up, this default cache can be accessed from anywhere that can call the cache or rmcache methods. (e.g. your web application class and any of its subclasses.)Alternatively, you can pass in a list of name => hashref pairs to set up several caches with different names. __PACKAGE__->cache_config( ondisk => { driver => 'File', cache_root => '/path/to/nowhere' }, inram => { driver => 'Memory' }, distributed => { driver => 'Memcached' } );You can call cache_config multiple times to add or overwrite additional cache configurations.These caches can be accessed with the one-argument form of cache and rmcache described below.cache_defaultThis method designates a named cache as the default cache. __PACKAGE__->cache_default( 'foobar' ); # $self->cache() now returns the same as $self->cache( 'foobar' )OBJECT METHODScacheThis method instantiates and returns a cache which you have previously configured. With no arguments, it returns the default cache, if there is one. my $cache = $self->cache; # default cacheIf there is no default cache, a fatal error occurs.You can pass the name of a cache as an argument. my $cache = $self->cache( 'foobar' ); # the foobar cacheIf there is no cache with that name, a fatal error occurs.rmcacheThis does the same thing as cache above, except it performs the extra step of setting the cache's namespace to a concatenation of the current class's name and the current runmode. You can use this to store per-runmode data that you don't want crashing into other runmodes. sub runmode_foo { my $self = shift; my $cache = $self->rmcache( 'foobar' ); # items stored here will be in # their own namespace }Just like cache, you can call rmcache with zero arguments to get the default cache with a namespace set.Note that if you set a namespace when you called cache_config, using rmcache will override it.SYNOPSIS package My::WebApp; use strict; use warnings; use base 'CGI::Application'; use CGI::Application::Plugin::CHI; __PACKAGE__->cache_config( { driver => 'File', cache_root => '/path/to/nowhere' } ); ... # a runmode sub a_runmode { my $self = shift; $self->cache->set( foo => 42 ); return 'the value of foo is ' . $self->cache->get( 'foo' ); } Requirements: · Perl


CGI::Application::Plugin::CHI Related Software