Класс Cache
Cache предоставляет согласованный интерфейс к кэшированию в вашем приложении. Он позволяет использовать несколько различных кэширующих движков, не связывая ваше приложение со специфической реализацией. Это также позволяет изменить хранилище или конфигурацию кэша, не затрагивая остальную часть вашего приложения.
Настройка кэширующих движков
Вы можете настроить кэширующие движки в файле вашего приложения Config/cache.php. Пример конфигурации:
Cache::config('shared', [
'className' => Cake\Cache\Engine\ApcuEngine::class,
'prefix' => 'my_app_'
]); Это настроит движок кэша APCu с псевдонимом 'shared'. Затем вы можете читать и записывать в этот кэширующий псевдоним, используя его в качестве параметра $config в различных методах Cache.
В целом все операции кэширования поддерживаются всеми кэширующими движками. Однако Cache::increment() и Cache::decrement() не поддерживаются кэшированием файлов.
Существует 7 встроенных кэширующих движков:
-
ApcuEngine- Использует кэширующий объект APCu, один из самых быстрых кэширующих движков. -
ArrayEngine- Использует только память для хранения всех данных, на самом деле не является постоянным движком. Может быть полезен в тестовой или командной строке. -
FileEngine- Использует простые файлы для хранения содержимого. Низкая производительность, но подходит для хранения больших объектов или объектов, не чувствительных к вводу-выводу. Хорошо подходит для разработки, так как кэш легко проверить и вручную очистить. -
MemcacheEngine- Использует расширение PECL::Memcache и Memcached для хранения. Быстрое чтение/запись и выигрывает от распределённости memcache. -
RedisEngine- Использует redis и расширение php-redis для хранения кэшированных данных. -
WincacheEngine- Использует расширение Windows Cache для PHP. Поддерживает wincache 1.1.0 и выше. Этот движок рекомендуется для развертывания на Windows с IIS. -
XcacheEngine- Использует расширение Xcache, альтернативу APCu.
См. документацию кэширующего движка для ожидаемых ключей конфигурации.
Краткое описание свойств
- $_config protected static
arrayНаборы конфигурации.
- $_dsnClassMap protected static
string[]Массив, сопоставляющий схемы URL с полными именами классов кэширующих движков.
- $_enabled protected static
boolФлаг для отслеживания того, включено ли кэширование или нет.
- $_groups protected static
arrayСопоставление группы с конфигурацией
- $_registry protected static
Cake\Cache\CacheRegistry|nullРегистр кэша, используемый для создания и использования адаптеров кэша.
Краткое описание методов
-
_buildEngine() protected static
Находит и создаёт экземпляр требуемого класса движка.
-
add() public static
Записывает данные для ключа в движок кэша, если он ещё не существует.
-
clear() public static
Удаляет все ключи из кэша.
-
clearAll() public static
Удаляет все ключи из кэша из всех конфигураций.
-
clearGroup() public static
Удаляет все ключи из кэша, принадлежащие той же группе.
-
configured() public static
Возвращает массив, содержащий именованные конфигурации.
-
decrement() public static
Уменьшает число по ключу и возвращает уменьшенное значение.
-
delete() public static
Удаляет ключ из кэша.
-
deleteMany() public static
Удаляет несколько ключей из кэша.
-
disable() public static
Отключает кэширование.
-
drop() public static
Удаляет построенный адаптер.
-
enable() public static
Включает кэширование.
-
enabled() public static
Проверяет, включено ли кэширование.
-
engine() public static deprecated
Получает объект движка кэша для указанной конфигурации кэша.
-
getConfig() public static
Читает существующую конфигурацию.
-
getConfigOrFail() public static
Читает существующую конфигурацию для определённого ключа.
-
getDsnClassMap() public static
Возвращает карту DSN-классов для данного класса.
-
getRegistry() public static
Возвращает экземпляр Cache Registry, используемый для создания и использования адаптеров кэша.
-
groupConfigs() public static
Получает отображение имён групп на конфигурации.
-
increment() public static
Увеличивает число по ключу и возвращает увеличенное значение.
-
parseDsn() public static
Парсит DSN в корректную конфигурацию подключения.
-
pool() public static
Получает объект SimpleCacheEngine для указанного пула кэша.
-
read() public static
Читает ключ из кэша.
-
readMany() public static
Читает множество ключей из кэша.
-
remember() public static
Обеспечивает возможность легко реализовать проход чтения через кэширование.
-
setConfig() public static
Этот метод может быть использован для определения адаптеров конфигурации для приложения.
-
setDsnClassMap() public static
Обновляет карту DSN-классов для этого класса.
-
setRegistry() public static
Устанавливает экземпляр Cache Registry, используемый для создания и использования адаптеров кэша.
-
write() public static
Записывает данные для ключа в кэш.
-
writeMany() public static
Записывает данные для множества ключей в кэш.
Подробное описание методов
_buildEngine() protected static
_buildEngine(string $name): void
Находит и создаёт экземпляр требуемого класса движка.
Параметры
-
string$name Имя массива конфигурации, для которого требуется создать экземпляр движка.
Возвращает
voidИсключения
Cake\Cache\InvalidArgumentExceptionПри невозможности создать движок кеша.
RuntimeExceptionЕсли загрузка движка завершилась неудачно.
add() public static
add(string $key, mixed $value, string $config = 'default'): bool
Записывает данные для ключа в движок кеша, если он ещё не существует.
Использование:
Запись в активную конфигурацию кеша:
Cache::add('cached_data', $data); Запись в определённую конфигурацию кеша:
Cache::add('cached_data', $data, 'long_term'); Параметры
-
string$key Идентификатор данных.
-
mixed$value Данные для кеширования — всё, кроме ресурса.
-
string$config optional Необязательное имя конфигурации для записи. По умолчанию 'default'.
Возвращает
boolclear() public static
clear(string $config = 'default'): bool
Удаляет все ключи из кеша.
Параметры
-
string$config optional имя конфигурации для использования. По умолчанию 'default'
Возвращает
boolclearAll() public static
clearAll(): bool[]
Удаляет все ключи из кеша всех конфигураций.
Возвращает
bool[]clearGroup() public static
clearGroup(string $group, string $config = 'default'): bool
Удаляет все ключи из кеша, принадлежащие одной группе.
Параметры
-
string$group название группы, которая должна быть очищена
-
string$config optional название конфигурации для использования. По умолчанию 'default'
Возвращает
boolconfigured() public static
configured(): string[]
Возвращает массив, содержащий именованные конфигурации
Возвращает
string[]decrement() public static
decrement(string $key, int $offset = 1, string $config = 'default'): int|false
Уменьшает число по ключу и возвращает уменьшенное значение.
Параметры
-
string$key Идентификатор данных
-
int$offset optional На сколько уменьшить
-
string$config optional Необязательное имя конфигурации. По умолчанию 'default'
Возвращает
int|falseИсключения
Cake\Cache\InvalidArgumentExceptionпри offset < 0
delete() public static
delete(string $key, string $config = 'default'): bool
Удаляет ключ из кеша.
Использование:
Удаление из активной конфигурации кеша.
Cache::delete('my_data'); Удаление из конкретной конфигурации кеша.
Cache::delete('my_data', 'long_term'); Параметры
-
string$key Идентификатор данных
-
string$config optional имя конфигурации для использования. По умолчанию 'default'
Возвращает
booldeleteMany() public static
deleteMany(iterable $keys, string $config = 'default'): bool
Удаляет несколько ключей из кеша.
Использование:
Удаление нескольких ключей из активной конфигурации кеша.
Cache::deleteMany(['my_data_1', 'my_data_2']);
Удаление из конкретной конфигурации кеша.
Cache::deleteMany(['my_data_1', 'my_data_2], 'long_term');
Параметры
-
iterable$keys Массив или Traversable удаляемых ключей кеша
-
string$config optional имя конфигурации для использования. По умолчанию 'default'
Возвращает
boolИсключения
Cake\Cache\InvalidArgumentExceptiondisable() public static
disable(): void
Отключить кеширование.
При отключении все операции кеширования вернут null.
Возвращает
voiddrop() public static
drop(string $config): bool
Удаляет построенный адаптер.
Если вы хотите изменить существующую конфигурацию, вы должны её удалить, изменить конфигурацию, а затем повторно добавить.
Если реализующие объекты поддерживают объект $_registry, то именованная конфигурация также будет загружена из реестра.
Параметры
-
string$config Существующая конфигурация, которую вы хотите удалить.
Возвращает
boolenable() public static
enable(): void
Включить кеширование.
Если кеширование было отключено с помощью Cache::disable(), этот метод обратит это действие вспять.
Возвращает
voidenabled() public static
enabled(): bool
Проверить, включено ли кеширование.
Возвращает
boolengine() public static
engine(string $config): Psr\SimpleCache\CacheInterfaceCake\Cache\CacheEngineInterface
Получить объект движка кеша для указанной конфигурации кеша.
Параметры
-
string$config Имя настроенного кеш-бекенда.
Возвращает
Psr\SimpleCache\CacheInterfaceCake\Cache\CacheEngineInterfacegetConfig() public static
getConfig(string $key): mixed|null
Читает существующую конфигурацию.
Параметры
-
string$key Имя конфигурации.
Возвращает
mixed|nullgetConfigOrFail() public static
getConfigOrFail(string $key): mixed
Читает существующую конфигурацию по заданному ключу.
Значение конфигурации по этому ключу должно существовать, оно никогда не может быть null.
Параметры
-
string$key Имя конфигурации.
Возвращает
mixedИсключения
InvalidArgumentExceptionЕсли значение не существует.
getDsnClassMap() public static
getDsnClassMap(): string[]
Возвращает карту класса DSN для этого класса.
Возвращает
string[]getRegistry() public static
getRegistry(): Cake\Cache\CacheRegistry
Возвращает экземпляр реестра кеша, используемый для создания и использования адаптеров кеша.
Возвращает
Cake\Cache\CacheRegistrygroupConfigs() public static
groupConfigs(string|null $group = null): array
Получить отображение названий групп к конфигурациям.
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']] Вызов этого метода загрузит все настроенные движки.
Параметры
-
string|null$group optional имя группы или null для получения всех сопоставлений групп
Возвращает
arrayИсключения
Cake\Cache\InvalidArgumentExceptionincrement() public static
increment(string $key, int $offset = 1, string $config = 'default'): int|false
Увеличить число по ключу и вернуть увеличенное значение.
Параметры
-
string$key Идентификатор данных
-
int$offset необязательно На сколько увеличить
-
string$config необязательно Необязательное имя конфигурации. По умолчанию 'default'
Возвращает
int|falseИсключения
Cake\Cache\InvalidArgumentExceptionКогда offset < 0
parseDsn() public static
parseDsn(string $dsn): array
Парсит 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, если не указано иное.
Обратите внимание, что аргументы querystring также парсятся и устанавливаются в качестве значений в возвращаемой конфигурации.
Параметры
-
string$dsn Строка DSN для преобразования в массив конфигурации
Возвращает
arrayИсключения
InvalidArgumentExceptionЕсли не передана строка или передана некорректная строка
pool() public static
pool(string $config): Psr\SimpleCache\CacheInterfaceCake\Cache\CacheEngineInterface
Получить объект SimpleCacheEngine для указанного пула кэша.
Параметры
-
string$config Имя настроенного кэширующего бэкенда.
Возвращает
Psr\SimpleCache\CacheInterfaceCake\Cache\CacheEngineInterfaceread() public static
read(string $key, string $config = 'default'): mixed
Считать значение по ключу из кэша.
Использование:
Чтение из активной конфигурации кэша.
Cache::read('my_data'); Чтение из конкретной конфигурации кэша.
Cache::read('my_data', 'long_term'); Параметры
-
string$key Идентификатор данных
-
string$config необязательно Необязательное имя конфигурации для использования. По умолчанию 'default'
Возвращает
mixedreadMany() public static
readMany(iterable $keys, string $config = 'default'): iterable
Считать значения по множеству ключей из кэша.
Использование:
Чтение множества ключей из активной конфигурации кэша.
Cache::readMany(['my_data_1', 'my_data_2]);
Чтение из конкретной конфигурации кэша.
Cache::readMany(['my_data_1', 'my_data_2], 'long_term');
Параметры
-
iterable$keys Массив или Traversable ключей для извлечения из кэша
-
string$config необязательно Необязательное имя конфигурации для использования. По умолчанию 'default'
Возвращает
iterableИсключения
Cake\Cache\InvalidArgumentExceptionremember() public static
remember(string $key, callable $callable, string $config = 'default'): mixed
Предоставляет возможность легко выполнить кэширование чтения.
Если $key не задан в $config, будет вызван $callable. Результаты будут сохранены в конфигурации кэша по ключу.
Примеры:
Использование замыкания для предоставления данных, предположим, что $this это объект Table:
$results = Cache::remember('all_articles', function () {
return $this->find('all')->toArray();
}); Параметры
-
string$key Ключ кэша для чтения/хранения данных.
-
callable$callable Вызываемый объект, который предоставляет данные в случае, когда ключ кэша пуст. Может быть любого типа, поддерживаемого PHP.
-
string$config необязательно Конфигурация кэша для использования в этой операции. По умолчанию default.
Возвращает
mixedsetConfig() public static
setConfig(string|array $key, array|object|null $config = null): void
Этот метод может использоваться для определения адаптеров конфигурации для приложения.
Чтобы изменить конфигурацию адаптера во время выполнения, сначала удалите адаптер, а затем переконфигурируйте его.
Адаптеры не будут созданы до тех пор, пока не будет выполнено первое действие.
Использование
Предполагая, что имя класса Cache, поддерживаются следующие сценарии:
Настройка движка кэширования.
Cache::setConfig('default', $settings); Вставка созданного адаптера:
Cache::setConfig('default', $instance); Настройка нескольких адаптеров одновременно:
Cache::setConfig($arrayOfConfig);
Параметры
-
string|array$key Имя конфигурации или массив нескольких конфигураций.
-
array|object|null$config необязательно Массив имя => данные конфигурации для адаптера.
Возвращает
voidИсключения
BadMethodCallExceptionПри попытке изменить существующую конфигурацию.
LogicExceptionПри попытке сохранить некорректный структурированный массив конфигурации.
setDsnClassMap() public static
setDsnClassMap(string[] $map): void
Обновляет карту соответствия DSN для данного класса.
Параметры
-
string[]$map Добавления/изменения в карту классов для применения.
Возвращает
voidsetRegistry() public static
setRegistry(Cake\Cache\CacheRegistry $registry): void
Устанавливает экземпляр Cache Registry, используемый для создания и использования адаптеров кэша.
Также позволяет вставить новый экземпляр реестра.
Параметры
-
Cake\Cache\CacheRegistry$registry Вставляемый объект реестра.
Возвращает
voidwrite() public static
write(string $key, mixed $value, string $config = 'default'): bool
Записать данные для ключа в кэш.
Использование:
Запись в активную конфигурацию кэша:
Cache::write('cached_data', $data); Запись в определенную конфигурацию кэша:
Cache::write('cached_data', $data, 'long_term'); Параметры
-
string$key Идентификатор данных
-
mixed$value Данные для кэширования - все, кроме ресурса
-
string$config необязательно Необязательное имя конфигурации для записи. По умолчанию 'default'
Возвращает
boolwriteMany() public static
writeMany(iterable $data, string $config = 'default'): bool
Записать данные для множества ключей в кэш.
Использование:
Запись во активную конфигурацию кэша:
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');
Параметры
-
iterable$data Массив или Traversable данных, которые нужно сохранить в кэше
-
string$config необязательно Необязательное имя конфигурации для записи. По умолчанию 'default'
Возвращает
boolИсключения
Cake\Cache\InvalidArgumentExceptionПодробное описание свойств
$_config protected static
Наборы конфигурации.
Тип
array$_dsnClassMap protected static
Массив, сопоставляющий схемы URL с полными именами классов движка кеширования.
Тип
string[]$_enabled protected static
Флаг, показывающий, включен ли кеширование.
Тип
bool$_groups protected static
Сопоставление группы и конфигурации.
Тип
array$_registry protected static
Регистр кеша, используемый для создания и использования адаптеров кеша.
Тип
Cake\Cache\CacheRegistry|null
© 2005–present 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/4.2/class-Cake.Cache.Cache.html