Класс 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 Cache для 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 )
Поиск и создание экземпляра необходимого класса движка.
Параметры
- 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
$configoptional 'default' - Необязательное имя конфигурации для записи. По умолчанию 'default'.
Возвращаемое значение
booleanTrue, если данные успешно кэшированы, false при ошибке. Или если ключ уже существовал.
clear()source public static
clear( boolean $check false , string $config 'default' )
Удаление всех ключей из кэша.
Параметры
- boolean
$checkoptional false - если true, будет проверка истечения срока действия, иначе удаление всех
- string
$configoptional '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(), этот метод вернет этот эффект.
engine()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
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']] Вызов этого метода загрузит все сконфигурированные движки.
Параметры
- 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 )
Возвращает экземпляр реестра кэша, используемый для создания и использования адаптеров кэша. Также позволяет внедрить новый экземпляр реестра.
Устарело
Устарело начиная с версии 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 — это объект таблицы:
$results = Cache::remember('all_articles', function () {
return $this->find('all');
}); Параметры
- строка
$key - Ключ кэша для чтения/хранения данных.
- вызываемый объект
$callable Вызываемый объект, который предоставляет данные в случае, когда ключ кэша пуст. Может быть любым типом вызываемого объекта, поддерживаемым вашей PHP.
- строка
$configнеобязательно 'default' Конфигурация кэша для использования в этой операции. По умолчанию - 'default'.
Возвращает
mixedЕсли ключ найден: данные кэша, false, если данные отсутствуют/просрочены или произошла ошибка. Если ключ не найден: булево значение успеха записи
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'
Возвращает
массивмассив булевых значений для каждого предоставленного ключа, указывающих на успех (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, если не указано иное.
Обратите внимание, что аргументы запроса также парсятся и устанавливаются как значения в возвращаемой конфигурации.
Параметры
- строка
$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
$configoptional 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',
] $_enabledsource
protected static boolean
Флаг для отслеживания состояния включения кеширования.
true
$_registrysource
protected static Cake\Core\ObjectRegistry
Регистр кеша, используемый для создания и использования адаптеров кеша.
© 2005–2018 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.5/class-Cake.Cache.Cache.html