Кэширование в PHP

Автор статьи: Harry Fuecks (Перевод: Муллин Сергей (SiMM), Кузьма Феськов)
Сайт Автора: php.russofile.ru
E-mail Автора: kuzma@russofile.ru
Дата публикации: 25.04.2006


Настройки Cache_Lite

При вызове Cache_Lite (или любого из субклассов, например Cache_Lite_Output), есть много способов управлять его поведением. Все параметры должны быть помещены в массив и переданы конструктору:

**Пример 5.10. ##4.php## (окончание)**

<?php
// Задаем настройки для Cache_Lite 
$options = array( 
 'cacheDir'        => './cache/', 
 'writeControl'    => TRUE, 
 'readControl'     => TRUE, 
 'readControlType' => 'md5' 
); 

// Создаем объект Cache_Lite_Output 
$cache = new Cache_Lite_Output($options);
?>

В текущем версии класса (1.1) доступны следующие настройки:

cacheDir - Это каталог, в которрый будут помещаться файлы кэша. Значение по умолчанию - каталог, где выполняется скрипт.

caching - эта опция включает или выключает возможности Cache_Lite. Например, если у вас очень много запросов к Cache_Lite, а в процессе отладки вы захотите выключить кэширование, установить в FALSE. Значение по умолчанию - TRUE.

lifetime - Этот параметр содержит в себе заданный по умолчанию отрезок времени жизни кэша (в секундах). Изменить значение можно вызвав метод setLifeTime(). Значение по умолчанию 3600 (один час).

fileNameProtection - Если данная опция включена, Chache_Lite будет использовать MD5 кодирование для генерации имени файла с кэшем. Это позволяет вам использовать в названии файлов кэша и групп любые символы, даже запрещенные файловой системой. Этот параметр должен быть включен, когда вы используете Cache_Lite_Function. Значение по умолчанию - TRUE (включено).

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

writeControl - Проверяет, что файл кэша был записан правильно сразу после окончания записи. В случае ошибки бросает PEAR:Error. Эта возможность позволяет вашему скрипту перезаписать файл кэша еще раз, но замедляет его работу. Значение по умолчанию TRUE (включено).

readControl - Перед чтением файла с кэшем проверяет его на искажения. Cache_Lite размещает в файле значение длинны файла, которое можно использовать для контроля его целостности. Также имеется альтернативный механизм проверки целостности файла. Он включается параметром readControlType. Эти механизмы несколько замедляют скорость, но помогают гарантировать, что ваши пользователи увидят неиспорченную страницу. значение по умолчанию TRUE (включено).

readControlType - Этот параметр определяет тип механизма чтения файлов кэша. Доступные механизмы: цикличная проверка избыточности ('crc32' - значение по умолчанию) - использует функцию crc32 PHP, 'MD5' хэш - используется функция md5 PHP, или простую проверку длинны - 'strlen'. Обратите внимание, что этот механизм не предназначен для защиты файлов кэша от вызова их напрямую посторонними пользователями. Это всего лишь способ определить - испорчен файл или нет.

pearErrorMode - включает принятый в PEAR способ возврата ошибок. Значение по умолчанию CACHE_LITE_PEAR_RETURN - возвращает объект /#c#?PEAR::Error.

memoryCaching - Если данный параметр включен, каждый раз, как вы вызываете запись кэша в файл, он записывается в массив Cache_Lite. saveMemoryCachingState и getMemoryCachingState используются для доступа к кэшу, сохраненному в памяти между запросами. Преимущество подобного метода состоит в том, что содержимое кэша может быть сохранено в едином файле, сокращая число циклов чтения/записи на диск. Кэш восстанавливается прямо в массив, к которому ваш скрипт имеет доступ. В наших примерах мы будем использовать обычный механизм Cache_Lite, но вам стоит поэкспериментировать с этим параметром в дальнейшем, если у вас очень большой сайт. По умолчанию TRUE (выключено).

onlyMemoryCaching - Если вы включили этот параметр - будет использоваться только механизм кэширования в памяти. По умолчанию TRUE (выключено).

memoryCachingLimit - Этот парметр определяет предел количества файлов кэша, которые могут быть сохранены в массиве в памяти. чем больше число файлов - тем больше памяти будет расходоваться. Поэтому определить ограничение - это очень хорошая идея. Конечно это не влияет на размер файла кэша, поскольку один или два массивных файла не создадут никаких проблем. значение по умолчанию - 1000.