CodeIgniter User Guide Version 2.0.0


Драйвер кеширования

CodeIgniter предоставляет обертки для некоторых популярных методов быстрого и динамического кеширования. Все методы, за исключением тех, что основаны на файлах, имеют специфичные серверные требования, и возможны ошибки Fatal Exception, если эти требования не выполнены.

Содержание

Доступные драйверы

Пример использования

Следующий пример загрузит для использования драйвер кеширования APC, и применит кеширование на файлах, если APC недоступно в окружении хостинга.

$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;

Справка по функциям

is_supported(driver['string'])

Эта функция будет автоматически вызвана при попытке доступа к драйверу через $this->cache->get(). Если используются индивидуальные драйверы, убедитесь в том, что при вызыве этой функции требуемое окружение присутствует на сервере.

if ($this->cache->apc->is_supported())
{
     if ($data = $this->cache->apc->get('my_cache'))
     {
          // do things.
     }
}

get(id['string'])

Эта функция будет пытаться получить элемент из кеша. Если элемент не существует, функция вернет FALSE.

$foo = $this->cache->get('my_cached_item');

save(id['string'], data['mixed'], ttl['int'])

Эта функция сохранит элемент в кеш. Если сохранение не удалось, функция вернет FALSE.

Третий опциональный параметр (Time To Live - время жизни) установлен по умолчанию в 60 секунд.

$this->cache->save('cache_item_id', 'data_to_cache');

delete(id['string'])

Эта функция удалит указанный элемент из кеша. Если удаление не получилось, функция вернет FALSE.

$this->cache->delete('cache_item_id');

clean()

Функция "очистит" весь кеш. Если очиства кеша не получилась, функция вернет FALSE.

$this->cache->clean();

cache_info()

Эта функция вернет информацию о кеше.

var_dump($this->cache->cache_info());

get_metadata(id['string'])

Эта функция вернет детальную информацию об указанном элементе в кеше.

var_dump($this->cache->get_metadata('my_cached_item'));

Драйверы

Альтернативный кеш PHP (APC)

Все функции, перечисленные выше, могут применяться без специального адаптера к загрузчику драйверу:

$this->load->driver('cache');
$this->cache->apc->save('foo', 'bar', 10);

Для дополнительной информации об APC смотрите документацию http://php.net/apc

Кеширование на файлах

В отличие от кеширования классом Output, этот драйвер позволяет кешировать части отображений. Используйте его с осторожностью, и проверяйте производительность вашего приложения, так как интенсивный дисковый ввод/вывод может негативно сказаться на результатах кеширования.

Все функции, перечисленные ниже, могут быть использованы без адаптера к загрузчику драйвера:

$this->load->driver('cache');
$this->cache->file->save('foo', 'bar', 10);

Memcached

Можно указывать несколько серверов Memcached в конфигурационном файле memcached.php, находящемся в директории application/config/.

Все функции, перечисленные выше, могут быть использованы без адаптера к загрузчику драйвера:

$this->load->driver('cache');
$this->cache->memcached->save('foo', 'bar', 10);

Для большей информации о Memcached пожалуйста читайте документацию http://php.net/memcached

Заглушка

Это кеширующий бэкенд, который всегда будет опущен. Он не хранит данных, но позволяет вам хранить код для кеширования в среде, который не поддерживает выбранный метод кеширования.