Gantry::Plugins::Cache::Storable(3)

NAME
Gantry::Plugins::Cache::Storable - A Plugin interface to a caching subsystem

SYNOPSIS
It is sometimes desirable to cache data between page acceses. This module gives access to the Storable module to store that data.

  <Perl>
    # ...
    use MyApp qw{ -Engine=CGI -TemplateEngine=TT Cache::Storable };
  </Perl>

DESCRIPTION
This plugin mixes in methods to store data within a cache. This data is then available for later retrival. Data is stored within the cache by key/value pairs. There are no restrictions on what information can be stored. This cache is designed for short term data storage. Cached data items will be timed out and purged at regular intervals. The caching system also has the concept of namespace. Namespaces are being used to make key's unique. So you may store multiple unique data items within the cache.

CONFIGURATION
The following items can be set by configuration:

 cache_pages            the number of pages within the cache
 cache_pagesize         the sixe of those pages
 cache_expires          the expiration of items within the cache
 cache_filename         the cache filename

The following reasonable defaults are being used for those items:

 cache_pages            256
 cache_pagesize         256k
 cache_expires          1h
 cache_filename         /tmp/gantry.cache

Since this cache is being managed by Cache::FastMmap, any changes to those defaults should be consistent with that modules usage. Also note that memory consumption may seem excessive. This may cause problems on your system, so the Cache::FastMmap man pages will explain how to deal with those issue.

METHODS

cache_init
    This method will initialize the cache. It should be called only once within the application.

     $self->cache_init();

cache_inited
    For internal use.

    Dual use accessor for init flag. If cache_init has run this attribute is 1, otherwise it's 0.

cache_filename
    Dual use accessor for the name of the disk file which holds the cache. Defaults to '/tmp/gantry.storable.cache'.

cache_namespace
    This method will get/set the current namespace for cache operations.

     $self->cache_namespace($namespace);

cache_handle
    This method returns the handle for the underlining cache. You can use this handle to manipulate the cache directly. Doing so will be highly specific to the underling cache handler.

     $handle = $self->cache_handle();

cache_purge
    Useless here. This method is for other cache plugins which support a purge method.

cache_get
    This method returns the data associated with the current namespace/key combination.

     $self->cache_namespace($namespace);
     $data = $self->cache_get($key);

cache_set
    This method stores the data associated with the current namespace/key combination.

     $self->cache_namespace($namespace);
     $self->cache_set($key, $data);

cache_keys
    This method returns an arry reference of cache keys.

      my $arrayref = $self->cache_keys();

cache_clear
    This method will clear the entire cache.

        $self->cache_clear();

cache_del
    This method removes the data associated with the current namespace/key combination.

     $self->cache_namespace($namespace);
     $self->cache_del($key);

cache_expires
    Retrieves the current expiration time for data items within the cache. The expiration time is set when the cache is initially initialize. So setting it will not change anything. Expiration time formats are highly specific to the underlining cache handler.

     $expiration = $self->cache_expires();

SEE ALSO
    Gantry

AUTHOR
Tim Keefer <tim@timkeefer.com>

COPYRIGHT AND LICENSE
Copyright (C) 2007 Tim Keefer

This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself, either Perl version 5.8.6 or, at your option, any later version of Perl 5 you may have available.