Класс 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. (https://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Cache/Cache.php
Краткое описание свойств
-
arrayСтек конфигурации кэша. Сохраняет постоянные/базовые настройки для каждого движка кэширования. Эти настройки используются для сброса движков после временного изменения.
- Экземпляры движков, индексированные по имени конфигурации.
array - Сопоставление группы с конфигурацией
array - Нужно ли сбрасывать настройки при следующем вызове Cache::set();
array
Краткое описание методов
- Находит и создает экземпляр требуемого класса движка.
- Записывает данные для ключа в движок кэша, если он еще не существует.
- Удаляет все ключи из кэша.
- Удаляет все ключи из кэша, принадлежащие к одной группе.
-
Устанавливает конфигурацию кэша для использования. config() может создавать новые конфигурации и возвращать настройки уже настроенных конфигураций.
- Возвращает массив, содержащий текущие настройки кэша Cache.
- Уменьшает число по ключу и возвращает уменьшенное значение.
- Удаляет ключ из кэша.
-
Удаляет движок кэша. Удаляет информацию о конфигурации кэша. Если удаленная конфигурация — последняя конфигурация, использующая определенный движок, экземпляр движка также удаляется.
- Возвращает движок, связанный с определенным именем конфигурации.
- Сбор мусора
- Возвращает сопоставление имен групп с конфигурациями.
- Увеличивает число по ключу и возвращает увеличенное значение.
- Проверяет, инициализировал ли Cache рабочую конфигурацию для данного имени.
- Чтение ключа из конфигурации кэша.
- Предоставляет возможность легко выполнять кэширование чтением.
-
Временно изменяет настройки конфигурации кэша. Настройки сохраняются для следующей операции записи (запись, уменьшение, увеличение, очистка). Любые чтения, выполненные до записи, будут использовать измененные настройки. Если
$settingsпусто, настройки будут сброшены к исходной конфигурации. - Возвращает настройки указанного движка кэша.
- Записывает данные для ключа в движок кэша.
Подробное описание методов
_buildEngine()source protected static
_buildEngine( string $name )
Находит и создает экземпляр требуемого класса движка.
Параметры
- строка
$name - Имя массива конфигурации, для которого требуется создать экземпляр движка
Возвращает
booleanИсключения
CacheExceptionadd()source public static
add( string $key , mixed $value , string $config 'default' )
Записывает данные для ключа в движок кэша, если он еще не существует.
Использование:
Запись в активную конфигурацию кэша:
Cache::add('cached_data', $data);
Запись в определенную конфигурацию кэша:
Cache::add('cached_data', $data, 'long_term');
Параметры
- строка
$key - Идентификатор данных.
- смешанный
$value - Данные для кэширования — всё, кроме ресурса.
- строка
$configнеобязательно 'default' - Необязательное имя конфигурации для записи. По умолчанию 'default'.
Возвращает
booleanTrue, если данные успешно кэшированы, false при ошибке. Или если ключ уже существовал.
clear()source public static
clear( boolean $check false , string $config 'default' )
Удаляет все ключи из кэша.
Параметры
- логическое
$checkнеобязательно false - если true, проверяет срок действия, иначе удаляет все
- строка
$configнеобязательно 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращает
booleanTrue, если кэш успешно очищен, в противном случае false
clearGroup()source public static
clearGroup( string $group , string $config 'default' )
Удаляет все ключи из кэша, принадлежащие к одной группе.
Параметры
- строка
$group - имя группы для очистки
- строка
$configнеобязательно 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращает
booleanTrue, если группа кэша успешно очищена, в противном случае false
config()source 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 Cache для PHP. Поддерживает wincache 1.1.0 и выше.
В следующих ключах используются основные механизмы кеширования:
-
durationУказывает, как долго элементы в этой конфигурации кеша сохраняются. -
groupsСписок групп или 'меток', связанных с каждым ключом, хранящимся в этой конфигурации. Полезно для удаления целой группы из кеша. -
prefixПрефикс, добавляемый ко всем записям. Подходит для случаев, когда вам нужно использовать одно пространство имён ключей с другой конфигурацией кеша или другим приложением. -
probabilityВероятность обращения к очистке кеша gc. Установка значения в 0 отключит автоматическое вызов cache::gc. - «серверы» Используется memcache. Укажите адреса серверов memcached, которые нужно использовать.
-
compressИспользуется memcache. Включает сжатый формат memcache. -
serializeИспользуется FileCache. Необходимо ли сериализовать объекты перед кэшированием. -
pathИспользуется FileCache. Путь, по которому следует сохранять файлы кеша. -
lockИспользуется FileCache. Следует ли блокировать файлы перед записью? -
userИспользуется Xcache. Имя пользователя для XCache -
passwordИспользуется Xcache/Redis. Пароль для XCache/Redis
Параметры
- строка
$nameнеобязательно null - Имя конфигурации
- массив
$settingsнеобязательно array() - Необязательный ассоциативный массив настроек, переданных в механизм
Возвращает
массивмассив (engine, settings) при успехе, false при ошибке
Исключения
CacheExceptionСм. также
app/Config/core.php для настроек конфигурацииconfigured()source public static
configured( )
Возвращает массив, содержащий текущие настройки кеша.
Возвращает
массивМассив имен настроенных конфигураций кеша.
decrement()source public static
decrement( string $key , integer $offset 1 , string $config 'default' )
Уменьшить число по ключу и вернуть уменьшенное значение.
Параметры
- строка
$key - Идентификатор данных
- целое число
$offsetнеобязательно 1 - На сколько уменьшить
- строка
$configнеобязательно 'default' - Необязательное имя конфигурации. По умолчанию 'default'
Возвращает
смешанный типновое значение или false, если данные не существуют, не являются целыми числами или произошла ошибка при их извлечении
delete()source 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()source public static
drop( string $name )
Удаляет механизм кеширования. Удаляет информацию о конфигурации кеша. Если удалённая конфигурация — последняя конфигурация, использующая определённый механизм, экземпляр Engine также удаляется.
Параметры
- строка
$name - Текущая конфигурация кеша, которую вы хотите удалить.
Возвращает
booleanУспех удаления, возвращает false, когда конфигурация не существует.
engine()source public static
engine( string $config 'default' )
Получить механизм, прикреплённый к определённому имени конфигурации.
Параметры
- строка
$configнеобязательно 'default' - Необязательное имя конфигурации для получения механизма. По умолчанию 'default'.
Возвращает
null|CacheEngineNull, если механизм не инициализирован, или механизм.
gc()source public static
gc( string $config 'default' , integer $expires null )
Сбор мусора
Постоянно удаляет все истекшие и удалённые данные
Параметры
- строка
$configнеобязательно 'default' - [необязательно] Имя конфигурации, для которой требуется сбор мусора. По умолчанию 'default'
- целое число
$expiresнеобязательно null - [необязательно] Отметка времени истечения срока действия. По умолчанию NULL
Возвращает
booleangroupConfigs()source 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 для получения всех сопоставлений групп
Возвращает
массивотображение группы и всех конфигураций, имеющих ту же группу
Исключения
CacheExceptionincrement()source public static
increment( string $key , integer $offset 1 , string $config 'default' )
Увеличить число по ключу и вернуть увеличенное значение.
Параметры
- строка
$key - Идентификатор данных
- целое число
$offsetнеобязательно 1 - На сколько увеличить
- строка
$configнеобязательно 'default' - Необязательное имя конфигурации. По умолчанию 'default'
Возвращает
смешанный типновое значение или false, если данные не существуют, не являются целыми числами или произошла ошибка при их извлечении.
isInitialized()source public static
isInitialized( string $config 'default' )
Проверить, инициализировал ли Cache рабочую конфигурацию для данного имени.
Параметры
- строка
$configнеобязательно 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращает
booleanИнициализирована ли конфигурация с данным именем.
read()source public static
read( string $key , string $config 'default' )
Прочитать ключ из конфигурации кеша.
Использование:
Чтение из активной конфигурации кеша.
Cache::read('my_data');
Чтение из определённой конфигурации кеша.
Cache::read('my_data', 'long_term');
Параметры
- строка
$key - Идентификатор данных
- строка
$configнеобязательно 'default' - необязательное имя конфигурации для использования. По умолчанию 'default'
Возвращает
смешанный типДанные из кэша или false, если данных нет, срок действия истек или произошла ошибка при их извлечении
remember()source public static
remember( string $key , callable $callable , string $config 'default' )
Предоставляет возможность легко выполнять кэширование с чтением.
При вызове, если $ключ не задан в $конфигурации, будет вызван $вызываемыйФункция. Результаты затем будут сохранены в конфигурации кэша по ключу.
Примеры:
Использование замыкания для предоставления данных, предположим, что $this — это модель:
$model = $this;
$results = Cache::remember('all_articles', function() use ($model) {
return $model->find('all');
}); Параметры
- строка
$key - Ключ кэша для чтения/хранения данных.
- вызываемый
$callable Вызываемый объект, который предоставляет данные в случае, когда ключ кэша пуст. Может быть любым типом вызываемого объекта, поддерживаемым PHP.
- строка
$configнеобязательно 'default' Конфигурация кэша для использования в этой операции. По умолчанию — 'default'.
Возвращаемое значение
mixedРезультаты вызываемого объекта или результаты после десериализации.
set()source 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');
Параметры
- строка|массив
$settingsнеобязательно массив() - Необязательная строка для простой пары имя-значение или массив
- строка
$valueнеобязательно null - Необязательно для простой пары имя-значение
- строка
$configнеобязательно 'default' - Имя конфигурации, которую вы изменяете. По умолчанию — 'default'
Возвращаемое значение
arrayМассив настроек.
settings()source public static
settings( string $name 'default' )
Возвращает настройки для указанного движка кэширования.
Параметры
- строка
$nameнеобязательно 'default' - Имя конфигурации, для которой нужно получить настройки. По умолчанию — 'default'
Возвращаемое значение
arrayСписок настроек для этого движка
См. также
Cache::config()write()source public static
write( string $key , mixed $value , string $config 'default' )
Записывает данные по ключу в движок кэширования.
Использование:
Запись в активную конфигурацию кэша:
Cache::write('cached_data', $data);
Запись в определённую конфигурацию кэша:
Cache::write('cached_data', $data, 'long_term');
Параметры
- строка
$key - Идентификатор данных
- смешанное
$value - Данные для кэширования — всё, кроме ресурса
- строка
$configнеобязательно 'default' - Необязательное имя конфигурации для записи. По умолчанию — 'default'
Возвращаемое значение
booleanTrue, если данные были успешно кэшированы, false в случае ошибки
Подробное описание свойств
$_configsource
protected static массив
Стек конфигурации кэша Содержит постоянные/стандартные настройки для каждого движка кэширования. Эти настройки используются для сброса настроек движков после временных изменений.
array()
$_enginessource
protected static массив
Экземпляры движков, индексированные по имени конфигурации.
array()
$_resetsource
protected static массив
Необходимо ли сбрасывать настройки при следующем вызове Cache::set();
false
© 2005–2017 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.
https://api.cakephp.org/2.10/class-Cache.html