Класс Cache
Cache предоставляет согласованный интерфейс к кэшированию в вашем приложении. Он позволяет использовать различные кэширующие движки без привязки вашего приложения к конкретной реализации. Он также позволяет изменять хранилище или конфигурацию кэша без влияния на остальную часть приложения.
Вы можете настроить кэширующие движки в файле bootstrap.php вашего приложения. Пример конфигурации:
Cache::config('shared', array( 'engine' => 'Apc', 'prefix' => 'my_app_' ));
Это настроило движок кэша APC с псевдонимом «shared». Затем вы можете читать и записывать в этот кэширующий псевдоним, используя его в качестве параметра $config в различных методах Cache. В целом, все операции Cache поддерживаются всеми движками кэша. Однако Cache::increment() и Cache::decrement() не поддерживаются кэшированием файлов.
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: Лицензия MIT
Расположено в Cake/Cache/Cache.php
Подробное описание методов
_buildEngineисходный код protected static
_buildEngine( string $name )
Находит и создаёт экземпляр требуемого класса движка.
Параметры
- строка
$name - Имя массива конфигурации, для которого требуется создать экземпляр движка
Возвращает
booleanbool
Выбрасывает
CacheExceptionCacheException
clearисходный код public static
clear( boolean $check false , string $config 'default' )
Удаляет все ключи из кэша.
Параметры
- логическое значение
$checkнеобязательно false - если true, проверит истечение срока действия, иначе удалит все
- строка
$configнеобязательно 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращает
booleanTrue, если кэш был успешно очищен, false — в противном случае
clearGroupисходный код public static
clearGroup( string $group , string $config 'default' )
Удаляет все ключи из кэша, принадлежащие той же группе.
Параметры
- строка
$group - имя группы, которая должна быть очищена
- строка
$configнеобязательно 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращает
booleanTrue, если группа кэша была успешно очищена, false — в противном случае
configисходный код public static
config( string $name null , array $settings array() )
Устанавливает конфигурацию кэша для использования. config() может как создавать новые конфигурации, так и возвращать настройки уже настроенных конфигураций.
Чтобы создать новую конфигурацию или изменить существующую конфигурацию постоянно:
Cache::config('my_config', array('engine' => 'File', 'path' => TMP));
Если вам нужно временно изменить конфигурацию, используйте Cache::set(). Чтобы получить настройки конфигурации:
Cache::config('default');
Существует 5 встроенных движков кэширования:
-
FileEngine— использует простые файлы для хранения содержимого. Низкая производительность, но подходит для хранения больших объектов или элементов, не зависящих от ввода-вывода. -
ApcEngine— использует кэш объектов APC, один из самых быстрых движков кэширования. -
MemcacheEngine— использует расширение PECL::Memcache и Memcached для хранения. Быстрые чтение/запись и преимущества от распределённого memcache. -
XcacheEngine— использует расширение Xcache, альтернативу APC. -
WincacheEngine— использует расширение кэша Windows для PHP. Поддерживает wincache 1.1.0 и выше.
В следующих ключах используются основные движки кэша:
-
durationУказывает, как долго элементы в этой конфигурации кэша остаются действительными. -
groupsСписок групп или «тегов», связанных с каждым ключом, хранящимся в этой конфигурации. Полезно для удаления всей группы из кэша. -
prefixПрефикс, добавляемый ко всем записям. Полезно, когда вам нужно использовать пространство имён с другой конфигурацией кэша или другим приложением. -
probabilityВероятность вызова очистки кэша gc. Установка в 0 отключит автоматический вызов cache::gc. - `servers' Используется memcache. Укажите адрес серверов memcached, которые необходимо использовать.
-
compressИспользуется memcache. Включает сжатый формат memcache. -
serializeИспользуется FileCache. Необходимо ли сериализовать объекты перед кэшированием? -
pathИспользуется FileCache. Путь к тому, где должны сохраняться файлы кэша. -
lockИспользуется FileCache. Необходимо ли блокировать файлы перед записью в них? -
userИспользуется Xcache. Имя пользователя для XCache -
passwordИспользуется Xcache/Redis. Пароль для XCache/Redis
Параметры
- строка
$nameнеобязательно null - Имя конфигурации
- массив
$settingsнеобязательно array() - Необязательный ассоциативный массив настроек, передаваемых движку
Возвращает
arrayмассив (engine, settings) при успехе, false при ошибке
Выбрасывает
CacheExceptionCacheException
См.
app/Config/core.php для настроек конфигурацииconfiguredисходный код public static
configured( )
Возвращает массив, содержащий текущие настройки Cache.
Возвращает
arrayМассив имен настроенных конфигураций Cache.
decrementисходный код public static
decrement( string $key , integer $offset 1 , string $config 'default' )
Уменьшает число по ключу и возвращает уменьшенное значение.
Параметры
- строка
$key - Идентификатор данных
- целое число
$offsetнеобязательно 1 - На сколько уменьшить
- строка
$configнеобязательно 'default' - Необязательное имя конфигурации. По умолчанию 'default'
Возвращает
mixedновое значение или false, если данные не существуют, не являются целыми числами или произошла ошибка при их извлечении
deleteисходный код public static
delete( string $key , string $config 'default' )
Удаляет ключ из кэша.
Использование:
Удаление из активной конфигурации кэша.
Cache::delete('my_data');
Удаление из конкретной конфигурации кэша.
Cache::delete('my_data', 'long_term');
Параметры
- строка
$key - Идентификатор данных
- строка
$configнеобязательно 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращает
booleanTrue, если значение было успешно удалено, false — если оно не существовало или не могло быть удалено
dropисходный код public static
drop( string $name )
Удаляет движок кэша. Удаляет информацию о конфигурации кэша. Если удалённая конфигурация является последней конфигурацией, использующей определённый движок, экземпляр движка также удаляется.
Параметры
- строка
$name - Текущая настроенная конфигурация кэша, которую вы хотите удалить.
Возвращает
booleanУспешность удаления, возвращает false, если конфигурация не существует.
gcисходный код public static
gc( string $config 'default' , integer $expires null )
Сбор мусора
Постоянно удаляет все устаревшие и удалённые данные
Параметры
- строка
$configнеобязательно 'default' - [необязательно] Имя конфигурации, для которой должен быть выполнен сбор мусора. По умолчанию 'default'
- целое число
$expiresнеобязательно null - [необязательно] Отметка времени истечения срока действия. По умолчанию NULL
groupConfigsисходный код public static
groupConfigs( string $group null )
Возвращает соответствие имен групп и конфигураций.
Cache::config('daily', array( 'duration' => '1 day', 'groups' => array('posts') )); Cache::config('weekly', array( 'duration' => '1 week', 'groups' => array('posts', 'archive') )); $configs = Cache::groupConfigs('posts');
$config будет равен array('posts' => array('daily', 'weekly'))
Параметры
- строка
$groupнеобязательно null - имя группы или null для получения всех сопоставлений групп
Возвращает
arrayСопоставление групп и всех конфигураций, имеющих одинаковую группу
Выбрасывает
CacheExceptionCacheException
incrementsource public static
increment( string $key , integer $offset 1 , string $config 'default' )
Увеличить число по ключу и вернуть увеличенное значение.
Параметры
- string
$key - Идентификатор данных
- integer
$offsetoptional 1 - На сколько увеличить
- string
$configoptional 'default' - Необязательное имя конфигурации. По умолчанию 'default'
Возвращаемое значение
mixedновое значение или false, если данные не существуют, не являются целым числом или при ошибке получения.
isInitializedsource public static
isInitialized( string $config 'default' )
Проверить, инициализировал ли кэш рабочую конфигурацию для данного имени.
Параметры
- string
$configoptional 'default' - Имя конфигурации для использования. По умолчанию 'default'
Возвращаемое значение
booleanИнициализирована ли конфигурация с заданным именем.
readsource public static
read( string $key , string $config 'default' )
Считывание ключа из конфигурации кэша.
Использование:
Чтение из активной конфигурации кэша.
Cache::read('my_data');
Чтение из определённой конфигурации кэша.
Cache::read('my_data', 'long_term');
Параметры
- string
$key - Идентификатор данных
- string
$configoptional 'default' - необязательное имя конфигурации для использования. По умолчанию 'default'
Возвращаемое значение
mixedДанные кэша или false, если данные не существуют, истекли или при ошибке получения.
remembersource public static
remember( string $key , callable $callable , string $config 'default' )
Предоставляет возможность легко выполнять кеширование при чтении.
При вызове, если $key не задан в $config, будет вызван $callable. Результаты будут сохранены в конфигурации кэша по ключу.
Примеры:
Использование замыкания для предоставления данных, предположим, что $this — это модель:
$model = $this; $results = Cache::remember('all_articles', function() use ($model) { return $model->find('all'); });
Параметры
- string
$key - Ключ кэша для чтения/хранения данных.
- callable
$callable - Вызываемый объект, который предоставляет данные в случае, если ключ кэша пустой. Может быть любого типа вызываемого объекта, поддерживаемого PHP.
- string
$configoptional 'default' - Конфигурация кэша для использования в этой операции. По умолчанию default.
Возвращаемое значение
mixedРезультаты вызываемого объекта или результаты, десериализованные из кэша.
setsource public static
set( string|array $settings array() , string $value null , string $config 'default' )
Временное изменение настроек конфигурации кэша. Настройки будут сохраняться для следующей операции записи (запись, уменьшение, увеличение, очистка). Любые чтения, выполняемые до записи, будут использовать изменённые настройки. Если $settings пуст, настройки будут сброшены до исходной конфигурации.
Может быть вызван с 2 или 3 параметрами. Для установки нескольких значений сразу.
Cache::set(array('duration' => '+30 minutes'), 'my_config');
Или для установки одного значения.
Cache::set('duration', '+30 minutes', 'my_config');
Для сброса конфигурации обратно к исходно настроенным значениям.
Cache::set(null, 'my_config');
Параметры
- string|array
$settingsoptional array() - Необязательный строковый параметр для простой пары имя-значение или массив
- string
$valueoptional null - Необязательный параметр для простой пары имя-значение
- string
$configoptional 'default' - Имя конфигурации, которую вы изменяете. По умолчанию 'default'
Возвращаемое значение
arrayМассив настроек.
settingssource public static
settings( string $name 'default' )
Возвращает настройки указанного движка кэша.
Параметры
- string
$nameoptional 'default' - Имя конфигурации для получения настроек. По умолчанию 'default'
Возвращаемое значение
arrayСписок настроек для этого движка.
См. также
Cache::config()writesource public static
write( string $key , mixed $value , string $config 'default' )
Запись данных для ключа в движок кэша.
Использование:
Запись в активную конфигурацию кэша:
Cache::write('cached_data', $data);
Запись в определённую конфигурацию кэша:
Cache::write('cached_data', $data, 'long_term');
Параметры
- string
$key - Идентификатор данных
- mixed
$value - Данные для кеширования — всё, кроме ресурса
- string
$configoptional 'default' - Необязательное имя конфигурации для записи. По умолчанию 'default'
Возвращаемое значение
booleanTrue, если данные были успешно сохранены в кэше, false в противном случае.
Краткое описание свойств
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/2.7/class-Cache.html