Теория кэшированияЕсть три ключевых понятия в Zend_Cache. Первое — уникальный идентификатор (строка), который служит для идентификации записей кэша. Второе — это директива 'lifetime', которую вы могли видеть в предыдущих примерах; она определяет, в течение какого времени кэшируемый ресурс считается "свежим". Третье понятие — условное исполнение, используемое для того, чтобы части вашего кода могли быть пропущены целиком, этим повышается производительность. Основной метод фронтэнда (например, Zend_Cache_Core::get()) всегда спроектирован так, чтобы возвращать FALSE при промахе кэша, если это имеет смысл для данного фронэнда. Это дает конечным пользователям возможность включать части кода, которые нужно кэшировать (и затем пропускать) в операторы if(){ ... }, где условием является сам метод Zend_Cache. Но в конце этих блоков вы должны сохранять то, что было сгенерировано (например, методом Zend_Cache_Core::save()).
Фабричный метод Zend_CacheКорректным способом создания рабочего экземпляра фронтэнда Zend_Cache является код показанный в следующем примере:
В последующих примерах мы предполагаем, что переменная $cache содержит инстанцированный, как показано в примере, фронтэнд, и что вы понимаете, как передавать параметры выбранному вами бэкэнду.
Добавление тегов к записямТеги являются средством категоризации записей кэша. Когда вы производите сохранение в кэш методом save(), то можете установить массив тегов к данной записи. После этого вы можете удалить все записи кэша, помеченные данным тегом (тегами).
Очистка кэшаДля того, чтобы удалить или сделать недействительной запись с определенным идентификатором, вы можете использовать метод remove():
Для того, чтобы одновременно удалить или сделать недействительными несколько записей кэша, вы можете использовать метод clean(). Например, чтобы удалить все записи кэша:
Если вы хотите удалить записи кэша, помеченные тегами 'tagA' и 'tagC':
Если вы хотите удалить записи кэша, не помеченные тегами 'tagA' и 'tagC': If you want to remove cache entries not matching the tags 'tagA' or 'tagC':
Если вы хотите удалить записи кэша, помеченные тегами 'tagA' или 'tagC':
Доступные режимы очищения: CLEANING_MODE_ALL (удалить все), CLEANING_MODE_OLD (удалить устаревшие), CLEANING_MODE_MATCHING_TAG (удалить помеченные тегом) и CLEANING_MODE_NOT_MATCHING_TAG (удалить не помеченные тегом). Последние два, как ясно из названия, передаются вместе с массивом тегов.
|