Класс Cache
Cache предоставляет согласованный интерфейс для кэширования в вашем приложении. Он позволяет использовать несколько различных движков кэширования без связи вашего приложения со специфической реализацией. Также он позволяет изменять хранилище или конфигурацию кэша, не затрагивая остальную часть вашего приложения.
Вы можете настроить движки кэширования в файле вашего приложения bootstrap.php. Пример конфигурации:
Cache::config('shared', array(
'engine' => 'Apc',
'prefix' => 'my_app_'
)); Это настраивает движок кэширования APC с псевдонимом «shared». Затем вы можете читать и записывать в этот кэш-псевдоним, используя его в качестве параметра $config в различных методах Cache. В целом, все операции кэширования поддерживаются всеми движками кэширования. Однако Cache::increment() и Cache::decrement() не поддерживаются кэшированием файлов.
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: Cake/Cache/Cache.php
Краткое описание свойств
-
arrayСтек конфигурации кэша. Сохраняет постоянные/базовые настройки для каждого движка кэша. Эти настройки используются для сброса настроек движков после временного изменения.
- Экземпляры движков, индексированные по имени конфигурации.
array - Сопоставление групп с конфигурациями
array - Нужно ли сбрасывать настройки при следующем вызове Cache::set();
array
Краткое описание методов
- Находит и создает экземпляр требуемого класса движка.
- Записывает данные для ключа в движок кэша, если он еще не существует.
- Удаляет все ключи из кэша.
- Удаляет все ключи из кэша, принадлежащие к одной группе.
-
Устанавливает используемую конфигурацию кэша. config() может создавать новые конфигурации и возвращать настройки для уже настроенных конфигураций.
- Возвращает массив, содержащий текущие настройки кэша.
- Уменьшает число по ключу и возвращает уменьшенное значение.
- Удаляет ключ из кэша.
-
Удаляет движок кэша. Удаляет информацию о конфигурации кэша. Если удаленная конфигурация является последней конфигурацией, использующей определенный движок, экземпляр движка также удаляется.
- Сбор мусора
- Получение сопоставления имен групп с конфигурациями.
- Увеличивает число по ключу и возвращает увеличенное значение.
- Проверка, инициализировал ли Cache рабочую конфигурацию для данного имени.
- Чтение ключа из конфигурации кэша.
- Предоставляет возможность легко выполнять кэширование просмотров.
-
Временно изменяет настройки конфигурации кэша. Настройки сохранятся для следующей операции записи (запись, уменьшение, увеличение, очистка). Любые чтения, выполненные до записи, будут использовать измененные настройки. Если
$settingsпусто, настройки будут сброшены до исходной конфигурации. - Возвращает настройки для указанного движка кэша.
- Записывает данные для ключа в движок кэша.
Подробное описание методов
_buildEngine()source protected static
_buildEngine( string $name )
Находит и создает экземпляр требуемого класса движка.
Параметры
- string
$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');
Параметры
- string
$key - Идентификатор данных.
- mixed
$value - Данные для кэширования — все, кроме ресурса.
- string
$configопционально 'default' - Опциональное имя конфигурации для записи. По умолчанию «default».
Возвращаемое значение
booleanTrue, если данные были успешно кэшированы, false в случае неудачи. Или если ключ уже существовал.
clear()source public static
clear( boolean $check false , string $config 'default' )
Удаляет все ключи из кэша.
Параметры
- boolean
$checkопционально false - если true, будет проверяться срок действия, иначе удалять все
- string
$configопционально 'default' - имя конфигурации для использования. По умолчанию «default»
Возвращаемое значение
booleanTrue, если кэш был успешно очищен, false в противном случае
clearGroup()source public static
clearGroup( string $group , string $config 'default' )
Удаляет все ключи из кэша, принадлежащие к одной группе.
Параметры
- string
$group - имя группы, которая должна быть очищена
- string
$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
Параметры
- string
$nameнеобязательный null - Имя конфигурации
- array
$settingsнеобязательный array() - Необязательный ассоциативный массив настроек, передаваемых в движок
Возвращает
arrayarray(engine, settings) при успехе, false при ошибке
Исключение
CacheExceptionСм. также
app/Config/core.php для настроек конфигурацииconfigured()source public static
configured( )
Возвращает массив, содержащий текущие настройки кэша.
Возвращает
arrayМассив имен настроенных конфигураций кэша.
decrement()source public static
decrement( string $key , integer $offset 1 , string $config 'default' )
Уменьшает число по ключу и возвращает уменьшенное значение.
Параметры
- string
$key - Идентификатор данных
- integer
$offsetнеобязательный 1 - На сколько уменьшить
- string
$configнеобязательный 'default' - Необязательное имя конфигурации. По умолчанию 'default'
Возвращает
mixedновое значение или false, если данные не существуют, не являются целыми числами, или произошла ошибка при их извлечении
delete()source public static
delete( string $key , string $config 'default' )
Удалить ключ из кэша.
Использование:
Удаление из активной конфигурации кэша.
Cache::delete('my_data');
Удаление из определённой конфигурации кэша.
Cache::delete('my_data', 'long_term');
Параметры
- string
$key - Идентификатор данных
- string
$configнеобязательный 'default' - Имя конфигурации для использования. По умолчанию 'default'
Возвращает
booleanTrue, если значение было успешно удалено, false, если оно не существовало или не могло быть удалено
drop()source public static
drop( string $name )
Удаляет механизм кэширования. Удаляет информацию о конфигурации кэша. Если удаленная конфигурация — последняя использующая определённый движок, то экземпляр движка также будет удалён.
Параметры
- string
$name - Текущая конфигурация кэша, которую вы хотите удалить.
Возвращает
booleanУспешность удаления, возвращает false, если конфигурация не существует.
gc()source public static
gc( string $config 'default' , integer $expires null )
Сбор мусора
Постоянно удаляет все устаревшие и удалённые данные
Параметры
- string
$configнеобязательный 'default' - [необязательно] Имя конфигурации, которую вы хотите очистить. По умолчанию 'default'
- integer
$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'))
Параметры
- string
$groupнеобязательный null - Имя группы или null для получения всех сопоставлений групп
Возвращает
arrayКарта группы и всех конфигураций, имеющих ту же группу
Исключение
CacheExceptionincrement()source public static
increment( string $key , integer $offset 1 , string $config 'default' )
Увеличивает число по ключу и возвращает увеличенное значение.
Параметры
- string
$key - Идентификатор данных
- integer
$offsetнеобязательный 1 - На сколько увеличить
- string
$configнеобязательный 'default' - Необязательное имя конфигурации. По умолчанию 'default'
Возвращает
mixedновое значение или false, если данные не существуют, не являются целыми числами, или произошла ошибка при их извлечении.
isInitialized()source public static
isInitialized( string $config 'default' )
Проверяет, инициализирована ли конфигурация для данного имени.
Параметры
- string
$configнеобязательный 'default' - Имя конфигурации для использования. По умолчанию 'default'
Возвращает
booleanИнициализирована ли конфигурация с указанным именем.
read()source public static
read( string $key , string $config 'default' )
Прочитать ключ из конфигурации кэша.
Использование:
Чтение из активной конфигурации кэша.
Cache::read('my_data');
Чтение из определённой конфигурации кэша.
Cache::read('my_data', 'long_term');
Параметры
- string
$key - Идентификатор данных
- string
$configнеобязательный 'default' - Необязательное имя конфигурации для использования. По умолчанию 'default'
Возвращает
mixedДанные из кэша или false, если данных нет, они просрочены или произошла ошибка при их извлечении
remember()source public static
remember( string $key , callable $callable , string $config 'default' )
Предоставляет возможность легко использовать кэширование с чтением.
При вызове, если $key не задан в $config, вызывается функция $callable. Результаты будут сохранены в конфигурации кэша в ключе.
Примеры:
Использование Closure для предоставления данных, предположим, что $this — это модель:
$model = $this;
$results = Cache::remember('all_articles', function() use ($model) {
return $model->find('all');
}); Параметры
- строка
$key - Ключ кэша для чтения/хранения данных.
- вызываемый объект
$callable Вызываемый объект, предоставляющий данные в случае, если ключ кэша пустой. Может быть любым вызываемым объектом, поддерживаемым PHP.
- строка
$configнеобязательно 'default' Конфигурация кэша для использования в этой операции. По умолчанию — 'default'.
Возвращает
смешанноеРезультаты вызываемого объекта или результаты, десериализованные из кэша.
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'
Возвращает
массивМассив настроек.
settings()source public static
settings( string $name 'default' )
Возвращает настройки указанного движка кэширования.
Параметры
- строка
$nameнеобязательно 'default' - Имя конфигурации, для которой нужно получить настройки. По умолчанию — 'default'
Возвращает
массивСписок настроек для данного движка
См. также
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'
Возвращает
булевоTrue, если данные были успешно кэшированы, false в случае ошибки
Подробное описание свойств
$_configsource
protected static массив
Стек конфигураций кэша. Сохраняет постоянные/базовые настройки для каждого движка кэширования. Эти настройки используются для сброса движков после временного изменения.
array()
$_enginessource
protected static массив
Экземпляры движков, индексированные по имени конфигурации.
array()
$_resetsource
protected static массив
Нужно ли сбрасывать настройки при следующем вызове Cache::set()?
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.8/class-Cache.html