Класс 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 для настроек конфигурации
Параметр: string $name Название конфигурации
Параметр: array $config Необязательный ассоциативный массив настроек, передаваемых в движок
Возвращает: массив
[engine, settings] при успехе, false при ошибке
Расположение: Cache/Cache.php
Краткое описание свойств
-
arrayМассив, сопоставляющий схемы URL полным именам классов движков кэширования.
- Флаг для отслеживания состояния включения кэширования.
boolean - Сопоставление группы с конфигурацией.
array - Регистр кэша, используемый для создания и использования адаптеров кэширования.
Унаследованные свойства
Краткое описание методов
- Находит и создаёт экземпляр необходимого класса движка.
- Записывает данные для ключа в движок кэширования, если он ещё не существует.
- Удаляет все ключи из кэша.
- Удаляет все ключи из кэша из всех конфигураций.
- Удаляет все ключи из кэша, принадлежащие к одной группе.
- Уменьшает число по ключу и возвращает уменьшенное значение.
- Удаляет ключ из кэша.
- Удаляет множество ключей из кэша.
- Отключает кэширование.
- Включает кэширование.
- Проверяет, включено ли кэширование.
- Получает движок, привязанный к определённому имени конфигурации.
- Сбор мусора
- Возвращает экземпляр Регистра кэша, используемый для создания и использования адаптеров кэширования.
- Получает сопоставление имён групп с конфигурацией.
- Увеличивает число по ключу и возвращает увеличенное значение.
- Читает ключ из кэша.
- Читает несколько ключей из кэша.
- Возвращает экземпляр Регистра кэша, используемый для создания и использования адаптеров кэширования. Также позволяет вводить новый экземпляр регистра.
- Предоставляет возможность легко выполнять кэширование с просмотром чтения.
- Устанавливает экземпляр Регистра кэша, используемый для создания и использования адаптеров кэширования.
- Записывает данные для ключа в кэш.
- Записывает данные для многих ключей в кэш.
Подробное описание методов
_buildEngine()source protected static
_buildEngine( string $name )
Находит и создаёт экземпляр необходимого класса движка.
Параметры
- string
$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'); Параметры
- 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 в противном случае
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(), этот метод отменит это действие.
enabled()source public static
enabled( )
Проверить, включено ли кэширование или нет.
Возвращает
booleanengine()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'
Возвращает
массивмассив, содержащий, для каждого из заданных $ключей, данные из кэша или false, если данные из кэша не могут быть получены.
registry()source public static
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'.
Возвращает
mixedЕсли ключ найден: данные из кэша, false, если данные отсутствуют/просрочены или произошла ошибка. Если ключ не найден: boolean, указывающий на успех записи.
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'
Возвращает
booleanTrue, если данные успешно кэшированы, 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'
Возвращает
массивМассив boolean значений для каждого ключа, 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);
Устарело
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 - Существующая конфигурация, которую вы хотите удалить.
Возвращает
booleanРезультат удаления, возвращает false, если конфигурации нет.
dsnClassMap()source public static
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, если не указано иное.
Обратите внимание, что аргументы querystring также анализируются и устанавливаются в качестве значений в возвращаемой конфигурации.
Параметры
- строка
$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\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',
] $_registrysource
protected static Cake\Core\ObjectRegistry
Реестр кеширования, используемый для создания и использования адаптеров кеширования.
© 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.4/class-Cake.Cache.Cache.html