Spec-Zone.ru › CakePHP 3.6

Класс 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
Пространство имён: Cake\Cache
См.: config/app.php для настроек конфигурации
Расположение: Cache/Cache.php

Краткое описание свойств

  • $_dsnClassMap protected static
    array

    Массив, сопоставляющий схемы URL с полными именами классов движков кэширования.

  • $_enabled protected static
    boolean
    Флаг для отслеживания включения/выключения кэширования.
  • $_groups protected static
    array
    Сопоставление группы с конфигурацией.
  • $_registry protected static
    Cake\Core\ObjectRegistry
    Реестр кэша, используемый для создания и использования адаптеров кэша.

Унаследованные свойства

  • _config

Краткое описание методов

  • _buildEngine() protected static
    Поиск и создание экземпляра требуемого класса движка.
  • add() public static
    Запись данных для ключа в движок кэширования, если он ещё не существует.
  • clear() public static
    Удаление всех ключей из кэша.
  • clearAll() public static
    Удаление всех ключей из кэша со всех конфигураций.
  • clearGroup() public static
    Удаление всех ключей из кэша, принадлежащих одной группе.
  • decrement() public static
    Уменьшение числа по ключу и возврат уменьшенного значения.
  • delete() public static
    Удаление ключа из кэша.
  • deleteMany() public static
    Удаление множества ключей из кэша.
  • disable() public static
    Отключение кэширования.
  • enable() public static
    Включение кэширования.
  • enabled() public static
    Проверка включения/выключения кэширования.
  • engine() public static
    Получение движка, привязанного к определённому имени конфигурации.
  • gc() public static
    Сбор мусора
  • getRegistry() public static
    Возвращает экземпляр Cache Registry, используемый для создания и использования адаптеров кэша.
  • groupConfigs() public static
    Получение сопоставления имён групп с конфигурациями.
  • increment() public static
    Увеличение числа по ключу и возврат увеличенного значения.
  • read() public static
    Чтение ключа из кэша.
  • readMany() public static
    Чтение нескольких ключей из кэша.
  • registry() public static deprecated

    Возвращает экземпляр Cache Registry, используемый для создания и использования адаптеров кэша. Также позволяет вводить новый экземпляр реестра.

  • remember() public static
    Обеспечивает возможность лёгкого выполнения чтения с кэшированием.
  • setRegistry() public static
    Устанавливает экземпляр Cache Registry, используемый для создания и использования адаптеров кэша.
  • write() public static
    Запись данных для ключа в кэш.
  • writeMany() public static
    Запись данных для множества ключей в кэш.

Подробное описание методов

_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'.

Возвращает

boolean

True, если данные были успешно кэшированы, false при ошибке. Или если ключ уже существовал.


clear()source public static

clear( boolean $check = false , string $config = 'default' )

Удаление всех ключей из кэша.

Параметры

логическое $check необязательно false
если true, будет проверена дата истечения срока действия, иначе удалятся все
строка $config необязательно 'default'
имя конфигурации для использования. По умолчанию 'default'

Возвращает

boolean
True, если кэш был успешно очищен, иначе false
END_OF_DOCUMENT_MARKER

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'

Возвращает

boolean
True, если группа кэша была успешно очищена, иначе 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'

Возвращает

boolean
True, если значение было успешно удалено, 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( )

Проверить, включено ли кэширование.

Возвращает

boolean

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\ObjectRegistry

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']] Вызов этого метода загрузит все настроенные движки.

Параметры

строка|null $group необязательно null
имя группы или null, чтобы получить все сопоставления групп

Возвращает

массив
отображение группы и всех конфигураций, имеющих ту же группу

Исключения

InvalidArgumentException

increment()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, если данные кэша не могут быть извлечены.


END_OF_DOCUMENT_MARKER

registry()source public static deprecated

registry( Cake\Core\ObjectRegistry $registry = null )

Возвращает экземпляр реестра кэша, используемый для создания и использования адаптеров кэша. Также позволяет ввести новый экземпляр реестра.

Устаревший

Устарел начиная с версии 3.5. Используйте вместо него getRegistry() и setRegistry().

Параметры

Cake\Core\ObjectRegistry $registry необязательно null
Объект реестра, который можно ввести.

Возвращает

Cake\Core\ObjectRegistry

remember()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
Массив с данными конфигурации адаптера по имени.

Возвращает

массив или null
Null при добавлении конфигурации или массив конфигурационных данных при чтении.

Выбрасывает

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',
]

$_enabledsource

protected static boolean

Флаг для отслеживания включения кеширования.

true

$_groupssource

protected static array

Сопоставление группы и конфигурации.

[]

$_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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API