Класс Cache
Cache предоставляет согласованный интерфейс к кешированию в вашем приложении. Он позволяет использовать несколько различных кеш-движков, не привязывая ваше приложение к конкретной реализации. Он также позволяет изменять хранилище или конфигурацию кеша, не влияя на остальную часть вашего приложения.
Настройка кеш-движков
Вы можете настроить кеш-движки в файле вашего приложения Config/cache.php. Пример конфигурации:
Cache::config('shared', [
'className' => 'Cake\Cache\Engine\ApcEngine',
'prefix' => 'my_app_'
]); Это настраивает кеш-движок APC с псевдонимом 'shared'. Затем вы можете читать и записывать в этот кеш-псевдоним, используя его в качестве параметра $config в различных методах Cache.
В целом, все операции Cache поддерживаются всеми кеш-движками. Однако Cache::increment() и Cache::decrement() не поддерживаются кешированием файлов.
Существует 5 встроенных кеш-движков:
-
FileEngine— Использует простые файлы для хранения содержимого. Низкая производительность, но подходит для хранения больших объектов или объектов, не зависящих от ввода-вывода. Хорошо подходит для разработки, так как его легко инспектировать и вручную очищать. -
ApcEngine— Использует кеш объектов APC, один из самых быстрых кеш-движков. -
MemcacheEngine— Использует расширение PECL::Memcache и Memcached для хранения. Быстрое чтение/запись и выгоды от распределённости memcache. -
XcacheEngine— Использует расширение Xcache, альтернативу APC. -
WincacheEngine— Использует расширение кеширования Windows для PHP. Поддерживает wincache 1.1.0 и выше. Этот движок рекомендуется для развертывания на Windows с IIS. -
RedisEngine— Использует redis и расширение php-redis для хранения данных кеша.
См. документацию по кеш-движкам для ожидаемых ключей конфигурации.
- Cake\Cache\Cache использует Cake\Core\StaticConfigTrait
См.: config/app.php для настроек конфигурации
Параметр: строка $name Имя конфигурации
Параметр: массив $config Необязательный ассоциативный массив настроек, передаваемых движку
Возвращает: массив
[движок, настройки] при успехе, false при ошибке
Расположение: Cache/Cache.php
Краткое описание свойств
-
arrayМассив, сопоставляющий схемы URL полным именам классов кеш-движков.
- Флаг для отслеживания включения/выключения кеширования.
boolean - Сопоставление группы и конфигурации
array - Реестр кеша, используемый для создания и использования адаптеров кеша.
- Следует ли сбрасывать настройки при следующем вызове Cache::set()?
array
Унаследованные свойства
Краткое описание методов
- Находит и создаёт экземпляр требуемого класса движка.
- Записывает данные для ключа в кеш-движок, если они ещё не существуют.
- Удаляет все ключи из кеша.
- Удаляет все ключи из кеша из всех конфигураций.
- Удаляет все ключи из кеша, принадлежащие одной группе.
- Уменьшает число по ключу и возвращает уменьшенное значение.
- Удаляет ключ из кеша.
- Удаляет несколько ключей из кеша.
- Отключает кеширование.
- Включает кеширование.
- Проверяет включено ли кеширование.
- Получает движок, связанный с определённым именем конфигурации.
- Сбор мусора
- Получает сопоставление имён групп и конфигураций.
- Увеличивает число по ключу и возвращает увеличенное значение.
- Читает ключ из кеша.
- Читает несколько ключей из кеша.
-
Возвращает экземпляр Cache Registry, используемый для создания и использования адаптеров кеша. Также позволяет вводить новый экземпляр реестра.
- Предоставляет возможность легко реализовать кеширование с просмотром данных.
- Записывает данные для ключа в кеш.
- Записывает данные для многих ключей в кеш.
Подробное описание методов
_buildEngine()source protected static
_buildEngine( string $name )
Находит и создаёт экземпляр требуемого класса движка.
Параметры
- строка
$name - Имя массива конфигурации, для которого требуется создать экземпляр движка
Исключения
InvalidArgumentExceptionПри невозможности создания кеш-движка.
add()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'.
Возвращает
булевоTrue, если данные были успешно помещены в кеш, false при ошибке. Или если ключ уже существовал.
clear()source public static
clear( boolean $check false , string $config 'default' )
Удаляет все ключи из кеша.
Параметры
- булево
$checkнеобязательно false - если true, проверяет срок действия, иначе удаляет всё
- строка
$configнеобязательно 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращает
булевоTrue, если кеш был успешно очищен, false в противном случае
clearAll()source public static
clearAll( boolean $check false )
Удаляет все ключи из кеша из всех конфигураций.
Параметры
- булево
$checkнеобязательно false - если true, проверяет срок действия, иначе удаляет всё
Возвращает
массивКод состояния. Для каждой конфигурации он сообщает о статусе операции
clearGroup()source public static
clearGroup( string $group , string $config 'default' )
Удалить все ключи из кэша, принадлежащие одной группе.
Параметры
- строка
$group - имя группы, подлежащей очистке
- строка
$configнеобязательный 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращает
booleanИстина, если группа кэша была успешно очищена, ложь в противном случае
decrement()source public static
decrement( string $key , integer $offset 1 , string $config 'default' )
Уменьшить число по ключу и вернуть уменьшенное значение.
Параметры
- строка
$key - Идентификатор данных
- целое число
$offsetнеобязательный 1 - На сколько уменьшить
- строка
$configнеобязательный 'default' - Необязательное имя конфигурации. По умолчанию 'default'
Возвращает
mixedновое значение, или ложь, если данные не существуют, не являются целыми числами, или если произошла ошибка при их получении
delete()source public static
delete( string $key , string $config 'default' )
Удалить ключ из кэша.
Использование:
Удаление из активной конфигурации кэша.
Cache::delete('my_data'); Удаление из определенной конфигурации кэша.
Cache::delete('my_data', 'long_term'); Параметры
- строка
$key - Идентификатор данных
- строка
$configнеобязательный 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращает
booleanИстина, если значение было успешно удалено, ложь, если его не существовало или не удалось удалить
deleteMany()source public static
deleteMany( array $keys , string $config 'default' )
Удалить несколько ключей из кэша.
Использование:
Удаление нескольких ключей из активной конфигурации кэша.
Cache::deleteMany(['my_data_1', 'my_data_2']);
Удаление из определенной конфигурации кэша.
Cache::deleteMany(['my_data_1', 'my_data_2], 'long_term');
Параметры
- массив
$keys - Массив ключей кэша, которые необходимо удалить
- строка
$configнеобязательный 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращает
массивмассив значений boolean, которые равны true, если значение было успешно удалено, и false, если его не существовало или не удалось удалить
disable()source public static
disable( )
Отключить кэширование.
При отключении все операции кэширования вернут null.
enable()source public static
enable( )
Включить кэширование снова.
Если кэширование было отключено с помощью Cache::disable(), этот метод обратит этот эффект.
engine()source public static
engine( string $config )
Получить движок, прикрепленный к определенному имени конфигурации.
Если движок кэша и конфигурация отсутствуют, будет сгенерирована ошибка.
Параметры
- строка
$config - Имя конфигурации, для которой вам нужен движок.
Возвращает
Cake\Cache\CacheEngineПри отключенном кэшировании будет возвращен null.
gc()source public static
gc( string $config 'default' , integer|null $expires null )
Сбор мусора
Постоянно удалять все устаревшие и удаленные данные
Параметры
- строка
$configнеобязательный 'default' - [необязательно] Имя конфигурации, для которой вы хотите выполнить сбор мусора. По умолчанию 'default'
- целое число|null
$expiresнеобязательный null - [необязательно] Отметка времени истечения срока действия. По умолчанию NULL
groupConfigs()source public static
groupConfigs( string|null $group null )
Получить сопоставления имен групп к конфигурациям.
Cache::config('daily', ['duration' => '1 day', 'groups' => ['posts']]);
Cache::config('weekly', ['duration' => '1 week', 'groups' => ['posts', 'archive']]);
$configs = Cache::groupConfigs('posts'); $configs будут равны ['posts' => ['daily', 'weekly']] Вызов этого метода загрузит все настроенные движки.
Параметры
- строка|null
$groupнеобязательный null - имя группы или null для получения всех сопоставлений групп
Возвращает
массивотображение группы и всех конфигураций, имеющих ту же группу
Выбрасывает
InvalidArgumentExceptionincrement()source public static
increment( string $key , integer $offset 1 , string $config 'default' )
Увеличить число по ключу и вернуть увеличенное значение.
Параметры
- строка
$key - Идентификатор данных
- целое число
$offsetнеобязательный 1 - На сколько увеличить
- строка
$configнеобязательный 'default' - Необязательное имя конфигурации. По умолчанию 'default'
Возвращает
mixedновое значение, или ложь, если данные не существуют, не являются целыми числами, или если произошла ошибка при их получении.
read()source public static
read( string $key , string $config 'default' )
Прочитать ключ из кэша.
Использование:
Чтение из активной конфигурации кэша.
Cache::read('my_data'); Чтение из определенной конфигурации кэша.
Cache::read('my_data', 'long_term'); Параметры
- строка
$key - Идентификатор данных
- строка
$configнеобязательный 'default' - необязательное имя конфигурации для использования. По умолчанию 'default'
Возвращает
mixedДанные кэша, или ложь, если данных нет, они истекли, или произошла ошибка при их получении
readMany()source public static
readMany( array $keys , string $config 'default' )
Прочитать несколько ключей из кэша.
Использование:
Чтение нескольких ключей из активной конфигурации кэша.
Cache::readMany(['my_data_1', 'my_data_2]);
Чтение из определенной конфигурации кэша.
Cache::readMany(['my_data_1', 'my_data_2], 'long_term');
Параметры
- массив
$keys - массив ключей для извлечения из кэша
- строка
$configнеобязательный 'default' - необязательное имя конфигурации для использования. По умолчанию 'default'
Возвращает
массивМассив, содержащий для каждого из заданных $keys данные из кэша или ложь, если данные из кэша не могли быть получены.
registry()source public static
registry( Cake\Core\ObjectRegistry $registry null )
Возвращает экземпляр Реестра кэша, используемый для создания и использования адаптеров кэша. Также позволяет вводить новый экземпляр реестра.
Параметры
-
Cake\Core\ObjectRegistry$registryнеобязательный null - Инжектируемый объект реестра.
Возвращает
Cake\Core\ObjectRegistryremember()source public static
remember( string $key , callable $callable , string $config 'default' )
Предоставляет возможность легко выполнять кеширование с чтением.
При вызове, если $key не задан в $config, будет вызван $callable-функция. Результаты затем будут сохранены в конфигурацию кеша по ключу.
Примеры:
Использование замыкания для предоставления данных, предположим, что $this — это объект Table:
$results = Cache::remember('all_articles', function () {
return $this->find('all');
}); Параметры
- строка
$key - Ключ кеша для чтения/хранения данных.
- вызываемый объект
$callable Вызываемый объект, который предоставляет данные в случае, если ключ кеша пуст. Может быть любого типа вызываемого объекта, поддерживаемого вашим PHP.
- строка
$configнеобязательно 'default' Конфигурация кеша для использования в этой операции. По умолчанию — 'default'.
Возвращает
смешанноеЕсли ключ найден: кэшированные данные, false, если данные отсутствуют/просрочены или произошла ошибка. Если ключ не найден: булево значение, указывающее на успех записи
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 в случае неудачи
writeMany()source public static
writeMany( array $data , string $config 'default' )
Записывает данные для множества ключей в кеш.
Использование:
Запись в активную конфигурацию кеша:
Cache::writeMany(['cached_data_1' => 'data 1', 'cached_data_2' => 'data 2']);
Запись в определённую конфигурацию кеша:
Cache::writeMany(['cached_data_1' => 'data 1', 'cached_data_2' => 'data 2'], 'long_term');
Параметры
- массив
$data - Массив данных, которые нужно сохранить в кеше
- строка
$configнеобязательно 'default' - Необязательное имя конфигурации для записи. По умолчанию — 'default'
Возвращает
массивмассив булевых значений для каждого предоставленного ключа, указывающий на успех (true) или неудачу (false)
Выбрасывает
RuntimeExceptionМетоды, используемые из Cake\Core\StaticConfigTrait
config()source public static
config( string|array $key , array|null $config null )
Этот метод может использоваться для определения адаптеров конфигурации для приложения или чтения существующей конфигурации.
Чтобы изменить конфигурацию адаптера во время выполнения, сначала удалите адаптер, а затем переконфигурируйте его.
Адаптеры не будут созданы, пока не будет выполнена первая операция.
Использование
Предполагая, что имя класса — Cache , поддерживаются следующие сценарии:
Чтение конфигурационных данных обратно:
Cache::config('default'); Настройка движка кеша.
Cache::config('default', $settings); Вставка созданного адаптера:
Cache::config('default', $instance); Одновременная настройка нескольких адаптеров:
Cache::config($arrayOfConfig);
Параметры
- строка или массив
$key - Имя конфигурации или массив нескольких конфигураций.
- массив или null
$configнеобязательно null - Массив пар имя => конфигурационные данные для адаптера.
Возвращает
массив или nullNull при добавлении конфигурации или массив конфигурационных данных при чтении.
Выбрасывает
BadMethodCallExceptionПри попытке изменить существующую конфигурацию.
configured()source public static
configured( )
Возвращает массив, содержащий конфигурации по имени.
Возвращает
массивМассив конфигураций.
drop()source public static
drop( string $config )
Удаляет созданный адаптер.
Если вы хотите изменить существующую конфигурацию, вы должны удалить её, изменить конфигурацию и затем снова добавить.
Если реализующие объекты поддерживают объект $_registry, имя конфигурации также будет выгружено из реестра.
Параметры
- строка
$config - Существующая конфигурация, которую вы хотите удалить.
Возвращает
булево значениеРезультат удаления, возвращает false, если конфигурация не существует.
dsnClassMap()source public static
dsnClassMap( array $map null )
Возвращает или обновляет карту классов DSN для этого класса.
Параметры
- массив
$mapнеобязательно null - Добавления/изменения в карту классов для применения
Возвращает
массивparseDsn()source public static
parseDsn( string $dsn )
Парсит DSN в корректную конфигурацию соединения.
Этот метод позволяет задать DSN с использованием формата, аналогичного используемому PEAR::DB. Вот пример его использования:
$dsn = 'mysql://user:pass@localhost/database?'; $config = ConnectionManager::parseDsn($dsn); $dsn = 'Cake\Log\Engine\FileLog://?types=notice,info,debug&file=debug&path=LOGS'; $config = Log::parseDsn($dsn); $dsn = 'smtp://user:secret@localhost:25?timeout=30&client=null&tls=null'; $config = Email::parseDsn($dsn); $dsn = 'file:///?className=\My\Cache\Engine\FileEngine'; $config = Cache::parseDsn($dsn); $dsn = 'File://?prefix=myapp_cake_core_&serialize=true&duration=+2 minutes&path=/tmp/persistent/'; $config = Cache::parseDsn($dsn);
Для всех классов значение scheme устанавливается как значение className, если не указано иное.
Обратите внимание, что аргументы строки запроса также парсятся и устанавливаются в качестве значений в возвращаемой конфигурации.
Параметры
- строка
$dsn - Строка DSN для преобразования в массив конфигурации
Возвращает
массивМассив конфигурации для хранения после парсинга DSN
Выбрасывает
InvalidArgumentExceptionЕсли не передана строка
Подробное описание свойств
$_dsnClassMapsource
protected static массив
Массив, сопоставляющий схемы URL с полными именами классов движков кеширования.
[
'apc' => 'Cake\Cache\Engine\ApcEngine',
'file' => 'Cake\Cache\Engine\FileEngine',
'memcached' => 'Cake\Cache\Engine\MemcachedEngine',
'null' => 'Cake\Cache\Engine\NullEngine',
'redis' => 'Cake\Cache\Engine\RedisEngine',
'wincache' => 'Cake\Cache\Engine\WincacheEngine',
'xcache' => 'Cake\Cache\Engine\XcacheEngine',
] $_enabledsource
protected static булево значение
Флаг для отслеживания того, включено ли кеширование.
true
$_registrysource
protected static Cake\Cache\CacheRegistry
Реестр кеша, используемый для создания и использования адаптеров кеша.
$_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/3.3/class-Cake.Cache.Cache.html