Класс Cache
Cache предоставляет согласованный интерфейс к кэшированию в вашем приложении. Он позволяет использовать несколько различных движков кэширования, без привязки вашего приложения к конкретной реализации. Это также позволяет изменять хранилище или конфигурацию кэша без влияния на остальную часть приложения.
Настройка движков кэширования
Вы можете настроить движки кэширования в файле вашего приложения Config/cache.php. Пример конфигурации:
Cache::config('shared', [
'className' => 'Cake\Cache\Engine\ApcuEngine',
'prefix' => 'my_app_'
]); Это сконфигурирует движок кэширования APCu с псевдонимом 'shared'. Затем вы можете читать и записывать в этот кэш-псевдоним, используя его в качестве параметра $config в различных методах Cache.
В целом, все операции кэширования поддерживаются всеми движками кэширования. Однако, Cache::increment() и Cache::decrement() не поддерживаются кэшированием файлов.
Существует 6 встроенных движков кэширования:
-
FileEngine- Использует простые файлы для хранения содержимого. Низкая производительность, но подходит для хранения больших объектов или элементов, не чувствительных к вводу-выводу. Хорошо подходит для разработки, так как кэш легко инспектировать и вручную очищать. -
ApcuEngine- Использует объект кэширования APCu, один из самых быстрых движков кэширования. -
MemcacheEngine- Использует расширение PECL::Memcache и Memcached для хранения. Быстрые чтение/запись и преимущества от распределённого Memcache. -
XcacheEngine- Использует расширение Xcache, альтернативу APCu. -
WincacheEngine- Использует расширение кэша Windows для PHP. Поддерживает wincache 1.1.0 и выше. Этот движок рекомендуется для развертывания на Windows с IIS. -
RedisEngine- Использует redis и php-redis расширение для хранения данных кэша.
См. документацию по движкам кэширования для ожидаемых ключей конфигурации.
- Cake\Cache\Cache использует Cake\Core\StaticConfigTrait
См.: config/app.php для настроек конфигурации
Расположение: Cache/Cache.php
Краткое описание свойств
-
arrayМассив, сопоставляющий схемы URL с полными именами классов движков кэширования.
- Флаг для отслеживания включения/выключения кэширования.
boolean - Сопоставление группы с конфигурацией.
array - Реестр кэша, используемый для создания и использования адаптеров кэша.
Унаследованные свойства
Краткое описание методов
- Поиск и создание экземпляра требуемого класса движка.
- Запись данных для ключа в движок кэширования, если он ещё не существует.
- Удаление всех ключей из кэша.
- Удаление всех ключей из кэша со всех конфигураций.
- Удаление всех ключей из кэша, принадлежащих одной группе.
- Уменьшение числа по ключу и возврат уменьшенного значения.
- Удаление ключа из кэша.
- Удаление множества ключей из кэша.
- Отключение кэширования.
- Включение кэширования.
- Проверка включения/выключения кэширования.
- Получение движка, привязанного к определённому имени конфигурации.
- Сбор мусора
- Возвращает экземпляр Cache Registry, используемый для создания и использования адаптеров кэша.
- Получение сопоставления имён групп с конфигурациями.
- Увеличение числа по ключу и возврат увеличенного значения.
- Чтение ключа из кэша.
- Чтение нескольких ключей из кэша.
-
Возвращает экземпляр Cache Registry, используемый для создания и использования адаптеров кэша. Также позволяет вводить новый экземпляр реестра.
- Обеспечивает возможность лёгкого выполнения чтения с кэшированием.
- Устанавливает экземпляр 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'.
Возвращает
booleanTrue, если данные были успешно кэшированы, false при ошибке. Или если ключ уже существовал.
clear()source public static
clear( boolean $check = false , string $config = 'default' )
Удаление всех ключей из кэша.
Параметры
- логическое
$checkнеобязательно false - если true, будет проверена дата истечения срока действия, иначе удалятся все
- строка
$configнеобязательно 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращает
booleanTrue, если кэш был успешно очищен, иначе false
clearAll()source public static
clearAll( boolean $check = false )
Удалить все ключи из кэша со всех конфигураций.
Параметры
- boolean
$checkнеобязательно false - если true, проверит срок действия, иначе удалит все
Возвращает
массивКод состояния. Для каждой конфигурации сообщается статус операции
clearGroup()source public static
clearGroup( string $group , string $config = 'default' )
Удалить все ключи из кэша, относящиеся к одной группе.
Параметры
- строка
$group - имя группы, которую нужно очистить
- строка
$configнеобязательно 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращает
booleanTrue, если группа кэша была успешно очищена, иначе false
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, если его не существовало или не удалось удалить
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
getRegistry()source public static
getRegistry( )
Возвращает экземпляр Регистра кэша, используемый для создания и использования адаптеров кэша.
Возвращает
Cake\Core\ObjectRegistrygroupConfigs()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'
Возвращает
смешанный типновое значение или false, если данные не существуют, не являются целым числом или произошла ошибка при их извлечении.
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, если данных нет, срок действия истек или произошла ошибка при их извлечении
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 данные кэша или false, если данные кэша не могут быть извлечены.
registry()source public static deprecated
registry( Cake\Core\ObjectRegistry $registry = null )
Возвращает экземпляр реестра кэша, используемый для создания и использования адаптеров кэша. Также позволяет ввести новый экземпляр реестра.
Устаревший
Устарел начиная с версии 3.5. Используйте вместо него getRegistry() и setRegistry().Параметры
-
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.
Возвращает
смешанный типЕсли ключ найден: кэшированные данные, ложь, если данные отсутствуют/просрочены или ошибка. Если ключ не найден: булево значение успеха записи.
setRegistry()source public static
setRegistry( Cake\Core\ObjectRegistry $registry )
Устанавливает экземпляр реестра кэша, используемый для создания и использования адаптеров кэша.
Также позволяет ввести новый экземпляр реестра.
Параметры
-
Cake\Core\ObjectRegistry$registry - Объект реестра, который можно ввести.
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'
Возвращает
булево значениеИстина, если данные успешно кэшированы, ложь при ошибке
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 deprecated
config( string|array $key , array|null $config = null )
Этот метод может быть использован для определения адаптеров конфигурации для приложения или чтения существующей конфигурации.
Чтобы изменить конфигурацию адаптера во время выполнения, сначала удалите адаптер, а затем переконфигурируйте его.
Адаптеры будут созданы только после первой операции.
Использование
Предполагая, что имя класса — Cache , поддерживаются следующие сценарии:
Чтение конфигурационных данных:
Cache::config('default'); Настройка движка кэша.
Cache::config('default', $settings); Ввод построенного адаптера:
Cache::config('default', $instance); Настройка нескольких адаптеров одновременно:
Cache::config($arrayOfConfig);
Устаревший
3.4.0 Используйте setConfig()/getConfig() вместо этого.Параметры
- строка или массив
$key - Имя конфигурации или массив нескольких конфигураций.
- массив или null
$configнеобязательно null - Массив с данными конфигурации адаптера по имени.
Возвращает
массив или nullNull при добавлении конфигурации или массив конфигурационных данных при чтении.
Выбрасывает
BadMethodCallExceptionПри попытке изменить существующую конфигурацию.
configured()source public static
configured( )
Возвращает массив, содержащий конфигурации по имени.
Возвращает
массивМассив конфигураций.
drop()source public static
drop( string $config )
Удаляет построенный адаптер.
Если вы хотите изменить существующую конфигурацию, вы должны удалить её, изменить конфигурацию, а затем добавить её снова.
Если реализующие объекты поддерживают объект $_registry, имя конфигурации также будет загружено из реестра.
Параметры
- строка
$config - Существующая конфигурация, которую вы хотите удалить.
Возвращает
булево значениеРезультат удаления, возвращает ложь, если конфигурация не существует.
dsnClassMap()source public static deprecated
dsnClassMap( array $map = null )
Возвращает или обновляет карту классов DSN для этого класса.
Устаревший
3.4.0 Используйте setDsnClassMap()/getDsnClassMap() вместо этого.Параметры
- массив
$mapнеобязательно null - Добавления/изменения в карту классов для применения.
Возвращает
массивgetConfig()source public static
getConfig( string $key )
Читает существующую конфигурацию.
Параметры
- строка
$key - Имя конфигурации.
Возвращает
массив или nullМассив данных конфигурации.
getDsnClassMap()source public static
getDsnClassMap( )
Возвращает карту классов DSN для этого класса.
Возвращает
массив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Если не передана строка или передана некорректная строка
setConfig()source public static
setConfig( string|array $key , array $config = null )
Этот метод может использоваться для определения адаптеров конфигурации для приложения.
Чтобы изменить конфигурацию адаптера во время выполнения, сначала удалите адаптер, а затем переконфигурируйте его.
Адаптеры не будут созданы до выполнения первого действия.
Использование
Предполагая, что имя класса Cache, поддерживаются следующие сценарии:
Настройка кеш-движка.
Cache::setConfig('default', $settings); Вставка созданного адаптера в:
Cache::setConfig('default', $instance); Конфигурация нескольких адаптеров одновременно:
Cache::setConfig($arrayOfConfig);
Параметры
- string|array
$key - Имя конфигурации или массив из нескольких конфигураций.
- array
$configнеобязательно null - Массив пар имя => данные конфигурации для адаптера.
Исключения
BadMethodCallExceptionПри попытке изменить существующую конфигурацию.
LogicException
При попытке сохранить массив конфигурации с неверной структурой.
setDsnClassMap()source public static
setDsnClassMap( array $map )
Обновляет карту классов DSN для этого класса.
Параметры
- array
$map - Добавления/изменения в карту классов для применения.
Подробное описание свойств
$_dsnClassMapsource
protected static array
Массив, сопоставляющий схемы URL с полными именами классов кеш-движков.
[
'apc' => 'Cake\Cache\Engine\ApcuEngine', // @deprecated Since 3.6. Use apcu instead.
'apcu' => 'Cake\Cache\Engine\ApcuEngine',
'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',
] $_registrysource
protected static Cake\Core\ObjectRegistry
Регистр кеша, используемый для создания и использования адаптеров кеша.
© 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/3.6/class-Cake.Cache.Cache.html