Класс 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 - Реестр кэша, используемый для создания и использования адаптеров кэша.
- Требуется ли сбросить настройки при следующем вызове Cache::set();
array
Унаследованные свойства
Резюме методов
- Поиск и создание экземпляра требуемого класса движка.
- Запись данных для ключа в движок кэширования, если он еще не существует.
- Удаление всех ключей из кэша.
- Удаление всех ключей из кэша из всех конфигураций.
- Удаление всех ключей из кэша, относящихся к одной группе.
- Уменьшение числа по ключу и возврат уменьшенного значения.
- Удаление ключа из кэша.
- Удаление многих ключей из кэша.
- Отключение кэширования.
- Включение кэширования.
- Проверка включения/выключения кэширования.
- Получение движка, прикрепленного к определенному имени конфигурации.
- Сбор мусора
- Получение сопоставления имен групп с конфигурациями.
- Увеличение числа по ключу и возврат увеличенного значения.
- Чтение ключа из кэша.
- Чтение нескольких ключей из кэша.
-
Возвращает экземпляр Cache Registry, используемый для создания и использования адаптеров кэша. Также позволяет ввести новый экземпляр реестра.
- Предоставляет возможность легко выполнять кэширование чтением.
- Запись данных для ключа в кэш.
- Запись данных для многих ключей в кэш.
Подробности о методах
_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, то будет проверка срока действия, иначе будут удалены все
Возвращаемое значение
arrayКод состояния. Для каждой конфигурации он сообщает о статусе операции
clearGroup()source public static
clearGroup( string $group , string $config 'default' )
Удалить все ключи из кэша, относящиеся к одной группе.
Параметры
- string
$group - имя группы, подлежащей очистке
- string
$configнеобязательный 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращаемое значение
booleanTrue, если группа кэша была успешно очищена, иначе false
decrement()source public static
decrement( string $key , integer $offset 1 , string $config 'default' )
Уменьшить число по ключу и вернуть уменьшенное значение.
Параметры
- string
$key - Идентификатор данных
- integer
$offsetнеобязательный 1 - На сколько уменьшить
- string
$configнеобязательный '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
$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');
Параметры
- array
$keys - Массив ключей кэша, которые должны быть удалены
- string
$configнеобязательный 'default' - имя конфигурации для использования. По умолчанию 'default'
Возвращаемое значение
arrayмассив значений 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 )
Получить движок, присоединенный к определенному имени конфигурации.
Если движок кэша и конфигурация отсутствуют, произойдет ошибка.
Параметры
- string
$config - Имя конфигурации, для которой требуется движок.
Возвращаемое значение
Cake\Cache\CacheEngineПри отключенном кэшировании будет возвращен null-движок.
gc()source public static
gc( string $config 'default' , integer|null $expires null )
Сбор мусора
Постоянно удалять все истекшие и удаленные данные
Параметры
- string
$configнеобязательный 'default' - [необязательно] Имя конфигурации, для которой требуется сбор мусора. По умолчанию 'default'
- integer|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']] Вызов этого метода загрузит все сконфигурированные движки.
Параметры
- string|null
$groupнеобязательный null - имя группы или null для получения всех соответствий групп
Возвращаемое значение
arrayотображение группы и всех конфигураций, имеющих ту же группу
Возможные исключения
InvalidArgumentExceptionincrement()source public static
increment( string $key , integer $offset 1 , string $config 'default' )
Увеличить число по ключу и вернуть увеличенное значение.
Параметры
- string
$key - Идентификатор данных
- integer
$offsetнеобязательный 1 - На сколько увеличить
- string
$configнеобязательный 'default' - Необязательное имя конфигурации. По умолчанию 'default'
Возвращаемое значение
mixedновое значение или false, если данные не существуют, не являются целым числом или произошла ошибка при получении их.
read()source public static
read( string $key , string $config 'default' )
Прочитать ключ из кэша.
Использование:
Чтение из активной конфигурации кэша.
Cache::read('my_data'); Чтение из определенной конфигурации кэша.
Cache::read('my_data', 'long_term'); Параметры
- string
$key - Идентификатор данных
- string
$configнеобязательный 'default' - необязательное имя конфигурации для использования. По умолчанию 'default'
Возвращаемое значение
mixedДанные из кэша или 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');
Параметры
- array
$keys - массив ключей для извлечения из кэша
- string
$configнеобязательный 'default' - необязательное имя конфигурации для использования. По умолчанию 'default'
Возвращаемое значение
arrayМассив, содержащий для каждого из заданных $keys данные из кэша или false, если данные из кэша не удалось получить.
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 это объект таблицы:
$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',
] $_registrysource
protected static Cake\Cache\CacheRegistry
Реестр кэша, используемый для создания и использования адаптеров кэша.
$_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.
http://api.cakephp.org/3.2/class-Cake.Cache.Cache.html