CodeIgniter User Guide Version 2.2.6 |
Table of Contents Page |
CodeIgniter Home › User Guide Home › Drivers › Caching Driver |
CodeIgniter features wrappers around some of the most popular forms of fast and dynamic caching. All but file-based caching require specific server requirements, and a Fatal Exception will be thrown if server requirements are not met.
The following example will load the cache driver, specify APC as the driver to use, and fall back to file-based caching if APC is not available in the hosting environment.
$this->load->driver('cache', array('adapter' => 'apc', 'backup' => 'file'));
if ( ! $foo = $this->cache->get('foo'))
{
echo 'Saving to the cache!<br />';
$foo = 'foobarbaz!';
// Save into the cache for 5 minutes
$this->cache->save('foo', $foo, 300);
}
echo $foo;
This function is automatically called when accessing drivers via $this->cache->get(). However, if the individual drivers are used, make sure to call this function to ensure the driver is supported in the hosting environment.
if ($this->cache->apc->is_supported())
{
if ($data = $this->cache->apc->get('my_cache'))
{
// do things.
}
}
This function will attempt to fetch an item from the cache store. If the item does not exist, the function will return FALSE.
$foo = $this->cache->get('my_cached_item');
This function will save an item to the cache store. If saving fails, the function will return FALSE.
The optional third parameter (Time To Live) defaults to 60 seconds.
$this->cache->save('cache_item_id', 'data_to_cache');
This function will delete a specific item from the cache store. If item deletion fails, the function will return FALSE.
$this->cache->delete('cache_item_id');
This function will 'clean' the entire cache. If the deletion of the cache files fails, the function will return FALSE.
$this->cache->clean();
This function will return information on the entire cache.
var_dump($this->cache->cache_info());
This function will return detailed information on a specific item in the cache.
var_dump($this->cache->get_metadata('my_cached_item'));
All of the functions listed above can be accessed without passing a specific adapter to the driver loader as follows:
$this->load->driver('cache');
$this->cache->apc->save('foo', 'bar', 10);
For more information on APC, please see http://php.net/apc
Unlike caching from the Output Class, the driver file-based caching allows for pieces of view files to be cached. Use this with care, and make sure to benchmark your application, as a point can come where disk I/O will negate positive gains by caching.
All of the functions listed above can be accessed without passing a specific adapter to the driver loader as follows:
$this->load->driver('cache');
$this->cache->file->save('foo', 'bar', 10);
Multiple Memcached servers can be specified in the memcached.php configuration file, located in the application/config/ directory.
All of the functions listed above can be accessed without passing a specific adapter to the driver loader as follows:
$this->load->driver('cache');
$this->cache->memcached->save('foo', 'bar', 10);
For more information on Memcached, please see http://php.net/memcached
This is a caching backend that will always 'miss.' It stores no data, but lets you keep your caching code in place in environments that don't support your chosen cache.
Previous Topic: Zip Encoding Class · Top of Page · User Guide Home · Next Topic: Database Class
CodeIgniter · Copyright © 2006 - 2014 · EllisLab, Inc. · Copyright © 2014 - 2015 · British Columbia Institute of Technology