Глава 2. Zend_Cache

Содержание

2.1. Введение
2.2. Фабрика Zend_Cache
2.3. Zend_Cache_Core
2.3.1. Введение
2.3.2. Доступные опции
2.3.3. Примеры
2.3.4. Идетификатор и теги кэша
2.3.5. Очищение кэша
2.4. Zend_Cache_Output
2.5. Zend_Cache_Page
2.6. Zend_Cache_File
2.7. Zend_Cache_Function
2.8. Zend_Cache_Class
2.9. Доступные серверные части для Zend_Cache
2.9.1. Zend_Cache_Backend_File
2.9.2. Zend_Cache_Backend_Sqlite

2.1. Введение

Zend_Cache предоставляет универсальное средство для кэширования данных.

Записи кэша хранятся в базе данных (File, Sqlite...) с гибкой системой идентификаторов и тегов. Например, легко удалить определенную часть кэшированных данных (все записи кэша помечаются тегами).

Ядро модуля является очень гибким и универсальным. Еще для специфических нужд вы можете использовать пользовательский интерфейс (Output, Function...) для наиболее подходящего пути работы.

Пример 2.1. Первый пример с ядром Zend_Cache

В первом примере мы будем непосредственно использовать ядро Zend_Cache с серверной частью File.

<?php
require_once 'Zend/Cache.php';

$frontendOptions = array(
    'lifeTime' => 7200 // время жизни кэша - 2 часа
);

$backendOptions = array(
    'cacheDir' => '/tmp/' // каталог, в котором размещаются файлы кэша
);

// создаем объект Zend_Cache 
$cache = Zend_Cache::factory('Core', 'File', $frontendOptions, $backendOptions);

$id = 'foo'; // идентификатор того, что мы хотим закэшировать

if (!($cache->test($id))) {
    // кэш отсутствует

    // require_once ... для большей производительности все включения производятся только если кэш отсутствует
    // require_once ...

    // формирование данных кэша
    // пример
    $data = '';
    for ($i=0;$i<10000;$i++) {
        $data = $data . $i;
    } 
	
    // сохраняем результат в кэше
    $cache->save($data);

} else {
    // получение кэша

    $data = $cache->get($id);

}

// делаем что-нибудь с данными :)
// [...]
?>       

[Замечание] Замечание
С Zend_Cache_Core вы можете управлять идентификатором кэша.