File cache class 2008.02.03 (Default branch)


 
Thread Tools Search this Thread
Special Forums News, Links, Events and Announcements Software Releases - RSS News File cache class 2008.02.03 (Default branch)
# 1  
Old 02-04-2008
File cache class 2008.02.03 (Default branch)

File cache class is a PHP Class that can cache arbitrary data in files in order to reduce the time necessary to regenerate pages or other types of data that do not change every time they are requested. It features safe locking of cache files to avoid data corruption caused by simultaneous accesses during cache file updates, portable locking schemes, and the ability to set a cache expiry date or timeout period. Cache files can store user-defined headers besides the cached data, and also standard headers used in HTTP like content-length:, date:, expires:, etag:, etc. It has been tested under Linux, SunOS and Windows. License: Freely Distributable Changes:
This release fixes a bug that was preventing the reading of cache file headers longer than the default file buffering length limit.Image

More...
Login or Register to Ask a Question

Previous Thread | Next Thread
Login or Register to Ask a Question
Poet::Cache(3pm)					User Contributed Perl Documentation					  Poet::Cache(3pm)

NAME
Poet::Cache -- Poet caching with CHI SYNOPSIS
# In a conf file... cache: defaults: driver: Memcached servers: ["10.0.0.15:11211", "10.0.0.15:11212"] # In a script... use Poet::Script qw($cache); # In a module... use Poet qw($cache); # In a component... my $cache = $m->cache; # For an arbitrary namespace... my $cache = Poet::Cache->new(namespace => 'Some::Namespace') # then... my $customer = $cache->get($name); if ( !defined $customer ) { $customer = get_customer_from_db($name); $cache->set( $name, $customer, "10 minutes" ); } my $customer2 = $cache->compute($name2, "10 minutes", sub { get_customer_from_db($name2) }); DESCRIPTION
Poet::Cache is a subclass of CHI. CHI provides a unified caching API over a variety of storage backends, such as memory, plain files, memory mapped files, memcached, and DBI. Each package and Mason component uses its own CHI namespace so that caches remain separate. CONFIGURATION
The Poet configuration entry 'cache', if any, will be passed to Poet::Cache->config(). This can go in any Poet conf file, e.g. "local.cfg" or "global/cache.cfg". Here's a simple configuration that caches everything to files under "data/cache". This is also the default if no configuration is present. cache: defaults: driver: File root_dir: ${root}/data/cache Here's a more involved configuration that defines several "storage types" and assigns each namespace a storage type. cache: defaults: expires_variance: 0.2 storage: file: driver: File root_dir: ${root}/data/cache memcached: driver: Memcached servers: ["10.0.0.15:11211", "10.0.0.15:11212"] compress_threshold: 4096 namespace: /some/component: { storage: file, expires_in: 5min } /some/other/component: { storage: memcached, expires_in: 1h } Some::Library: { storage: memcached, expires_in: 10min } Given the configuration above, and the code package Some::Library; use Poet qw($cache); this $cache will be created with properties driver: Memcached servers: ["10.0.0.15:11211", "10.0.0.15:11212"] compress_threshold: 4096 expires_in: 10min USAGE
Obtaining cache handle o In a script (namespace will be 'main'): use Poet::Script qw($cache); o In a module "MyApp::Foo" (namespace will be 'MyApp::Foo'): use Poet qw($cache); o In a component "/foo/bar" (namespace will be '/foo/bar'): my $cache = $m->cache; o Manually for an arbitrary namespace: my $cache = Poet::Cache->new(namespace => 'Some::Namespace'); # or my $cache = MyApp::Cache->new(category => 'Some::Namespace'); Using cache handle my $customer = $cache->get($name); if ( !defined $customer ) { $customer = get_customer_from_db($name); $cache->set( $name, $customer, "10 minutes" ); } my $customer2 = $cache->compute($name2, "10 minutes", sub { get_customer_from_db($name2) }); See CHI and Mason::Plugin::Cache for more details. MODIFIABLE METHODS
These methods are not intended to be called externally, but may be useful to override or modify with method modifiers in subclasses. initialize_caching Called once when the Poet environment is initialized. By default, calls "__PACKAGE__->config" with the configuration entry 'cache'. SEE ALSO
Poet AUTHOR
Jonathan Swartz <swartz@pobox.com> COPYRIGHT AND LICENSE
This software is copyright (c) 2012 by Jonathan Swartz. This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself. perl v5.14.2 2012-06-05 Poet::Cache(3pm)