Класс Cache
Cache предоставляет согласованный интерфейс к кэшированию в вашем приложении. Он позволяет использовать несколько различных движков кэша без привязки вашего приложения к конкретной реализации. Это также позволяет изменять хранилище или конфигурацию кэша без влияния на остальную часть приложения.
Вы можете настроить движки кэша в файле вашего приложения bootstrap.php. Пример конфигурации:
Cache::config('shared', array(
'engine' => 'Apc',
'prefix' => 'my_app_'
)); Это настраивает движок кэша APC с псевдонимом «shared». Затем вы можете читать и записывать в этот кэш-псевдоним, используя его в качестве параметра $config в различных методах Cache. В общем, все операции с кэшем поддерживаются всеми движками кэша. Однако Cache::increment() и Cache::decrement() не поддерживаются кэшированием файлов.
Авторские права: Авторские права (с) 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 )
Находит и создаёт экземпляр нужного класса движка.
Параметры
- строка
$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Вероятность попадания в сборку мусора кеша. Установка в 0 отключит автоматический вызов cache::gc. - `servers' Используется memcache. Указывает адрес серверов memcached для использования.
-
compressИспользуется memcache. Включает сжатый формат memcache. -
serializeИспользуется FileCache. Объекты должны быть сериализованы перед кешированием. -
pathИспользуется FileCache. Путь, в котором должны сохраняться файлы кеша. -
lockИспользуется FileCache. Файлы должны блокироваться перед записью в них? -
userИспользуется Xcache. Имя пользователя для XCache -
passwordИспользуется Xcache/Redis. Пароль для XCache/Redis
Параметры
- string
$nameoptional null - Имя конфигурации
- array
$settingsoptional array() - Необязательный ассоциативный массив настроек, передаваемых движку
Возвращает
arrayмассив (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
$offsetoptional 1 - На сколько уменьшить
- string
$configoptional '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
$configoptional 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращает
booleanTrue, если значение было успешно удалено, false, если его не существовало или не удалось удалить
drop()source public static
drop( string $name )
Удаляет движок кеширования. Удаляет информацию о конфигурации кеша. Если удаленная конфигурация является последней конфигурацией, использующей определённый движок, экземпляр движка также удаляется.
Параметры
- string
$name - Текущая конфигурация кеша, которую вы хотите удалить.
Возвращает
booleanРезультат удаления, возвращает false, когда конфигурация не существует.
engine()source public static
engine( string $config 'default' )
Извлечь движок, прикреплённый к имени определённой конфигурации.
Параметры
- string
$configoptional 'default' - Необязательное имя конфигурации для получения движка. По умолчанию 'default'.
Возвращает
null|CacheEngineNull, если движок не был инициализирован, или движок.
gc()source public static
gc( string $config 'default' , integer $expires null )
Сбор мусора
Постоянно удаляет все устаревшие и удалённые данные
Параметры
- string
$configoptional 'default' - [необязательно] Имя конфигурации, для которой нужно произвести сбор мусора. По умолчанию 'default'
- integer
$expiresoptional 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
$groupoptional null - имя группы или null для получения всех отображений соответствия групп
Возвращает
arrayотображение соответствия группы и всех конфигураций с той же группой
Выбрасывает
CacheExceptionincrement()source public static
increment( string $key , integer $offset 1 , string $config 'default' )
Увеличивает число по ключу и возвращает увеличенное значение.
Параметры
- string
$key - Идентификатор данных
- integer
$offsetoptional 1 - На сколько увеличить
- string
$configoptional 'default' - Необязательное имя конфигурации. По умолчанию 'default'
Возвращает
mixedновое значение или false, если данных нет, они не являются целым числом или произошла ошибка при их извлечении.
isInitialized()source public static
isInitialized( string $config 'default' )
Проверяет, инициализировал ли кеш рабочую конфигурацию для данного имени.
Параметры
- string
$configoptional '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
$configoptional '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'
Возвращаемое значение
булевоИстина, если данные были успешно кэшированы, ложь при ошибке
Подробное описание свойств
$_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.
https://api.cakephp.org/2.9/class-Cache.html