Spec-Zone.ru › CakePHP 4.2

Класс Cache

Cache предоставляет согласованный интерфейс к кэшированию в вашем приложении. Он позволяет использовать несколько различных кэширующих движков, не связывая ваше приложение со специфической реализацией. Это также позволяет изменить хранилище или конфигурацию кэша, не затрагивая остальную часть вашего приложения.

Настройка кэширующих движков

Вы можете настроить кэширующие движки в файле вашего приложения Config/cache.php. Пример конфигурации:

Cache::config('shared', [
   'className' => Cake\Cache\Engine\ApcuEngine::class,
   'prefix' => 'my_app_'
]);

Это настроит движок кэша APCu с псевдонимом 'shared'. Затем вы можете читать и записывать в этот кэширующий псевдоним, используя его в качестве параметра $config в различных методах Cache.

В целом все операции кэширования поддерживаются всеми кэширующими движками. Однако Cache::increment() и Cache::decrement() не поддерживаются кэшированием файлов.

Существует 7 встроенных кэширующих движков:

  • ApcuEngine - Использует кэширующий объект APCu, один из самых быстрых кэширующих движков.
  • ArrayEngine - Использует только память для хранения всех данных, на самом деле не является постоянным движком. Может быть полезен в тестовой или командной строке.
  • FileEngine - Использует простые файлы для хранения содержимого. Низкая производительность, но подходит для хранения больших объектов или объектов, не чувствительных к вводу-выводу. Хорошо подходит для разработки, так как кэш легко проверить и вручную очистить.
  • MemcacheEngine - Использует расширение PECL::Memcache и Memcached для хранения. Быстрое чтение/запись и выигрывает от распределённости memcache.
  • RedisEngine - Использует redis и расширение php-redis для хранения кэшированных данных.
  • WincacheEngine - Использует расширение Windows Cache для PHP. Поддерживает wincache 1.1.0 и выше. Этот движок рекомендуется для развертывания на Windows с IIS.
  • XcacheEngine - Использует расширение Xcache, альтернативу APCu.

См. документацию кэширующего движка для ожидаемых ключей конфигурации.

Пространство имён: Cake\Cache
См.: config/app.php для настроек конфигурации

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

  • $_config protected static
    array

    Наборы конфигурации.

  • $_dsnClassMap protected static
    string[]

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

  • $_enabled protected static
    bool

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

  • $_groups protected static
    array

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

  • $_registry protected static
    Cake\Cache\CacheRegistry|null

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

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

  • _buildEngine() protected static

    Находит и создаёт экземпляр требуемого класса движка.

  • add() public static

    Записывает данные для ключа в движок кэша, если он ещё не существует.

  • clear() public static

    Удаляет все ключи из кэша.

  • clearAll() public static

    Удаляет все ключи из кэша из всех конфигураций.

  • clearGroup() public static

    Удаляет все ключи из кэша, принадлежащие той же группе.

  • configured() public static

    Возвращает массив, содержащий именованные конфигурации.

  • decrement() public static

    Уменьшает число по ключу и возвращает уменьшенное значение.

  • delete() public static

    Удаляет ключ из кэша.

  • deleteMany() public static

    Удаляет несколько ключей из кэша.

  • disable() public static

    Отключает кэширование.

  • drop() public static

    Удаляет построенный адаптер.

  • enable() public static

    Включает кэширование.

  • enabled() public static

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

  • engine() public static deprecated

    Получает объект движка кэша для указанной конфигурации кэша.

  • getConfig() public static

    Читает существующую конфигурацию.

  • getConfigOrFail() public static

    Читает существующую конфигурацию для определённого ключа.

  • getDsnClassMap() public static

    Возвращает карту DSN-классов для данного класса.

  • getRegistry() public static

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

  • groupConfigs() public static

    Получает отображение имён групп на конфигурации.

  • increment() public static

    Увеличивает число по ключу и возвращает увеличенное значение.

  • parseDsn() public static

    Парсит DSN в корректную конфигурацию подключения.

  • pool() public static

    Получает объект SimpleCacheEngine для указанного пула кэша.

  • read() public static

    Читает ключ из кэша.

  • readMany() public static

    Читает множество ключей из кэша.

  • remember() public static

    Обеспечивает возможность легко реализовать проход чтения через кэширование.

  • setConfig() public static

    Этот метод может быть использован для определения адаптеров конфигурации для приложения.

  • setDsnClassMap() public static

    Обновляет карту DSN-классов для этого класса.

  • setRegistry() public static

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

  • write() public static

    Записывает данные для ключа в кэш.

  • writeMany() public static

    Записывает данные для множества ключей в кэш.

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

_buildEngine() protected static

_buildEngine(string $name): void

Находит и создаёт экземпляр требуемого класса движка.

Параметры

string $name

Имя массива конфигурации, для которого требуется создать экземпляр движка.

Возвращает

void

Исключения

Cake\Cache\InvalidArgumentException
При невозможности создать движок кеша.
RuntimeException
Если загрузка движка завершилась неудачно.

add() public static

add(string $key, mixed $value, string $config = 'default'): bool

Записывает данные для ключа в движок кеша, если он ещё не существует.

Использование:

Запись в активную конфигурацию кеша:

Cache::add('cached_data', $data);

Запись в определённую конфигурацию кеша:

Cache::add('cached_data', $data, 'long_term');

Параметры

string $key

Идентификатор данных.

mixed $value

Данные для кеширования — всё, кроме ресурса.

string $config optional

Необязательное имя конфигурации для записи. По умолчанию 'default'.

Возвращает

bool

clear() public static

clear(string $config = 'default'): bool

Удаляет все ключи из кеша.

Параметры

string $config optional

имя конфигурации для использования. По умолчанию 'default'

Возвращает

bool

clearAll() public static

clearAll(): bool[]

Удаляет все ключи из кеша всех конфигураций.

Возвращает

bool[]

clearGroup() public static

clearGroup(string $group, string $config = 'default'): bool

Удаляет все ключи из кеша, принадлежащие одной группе.

Параметры

string $group

название группы, которая должна быть очищена

string $config optional

название конфигурации для использования. По умолчанию 'default'

Возвращает

bool

configured() public static

configured(): string[]

Возвращает массив, содержащий именованные конфигурации

Возвращает

string[]

decrement() public static

decrement(string $key, int $offset = 1, string $config = 'default'): int|false

Уменьшает число по ключу и возвращает уменьшенное значение.

Параметры

string $key

Идентификатор данных

int $offset optional

На сколько уменьшить

string $config optional

Необязательное имя конфигурации. По умолчанию 'default'

Возвращает

int|false

Исключения

Cake\Cache\InvalidArgumentException
при offset < 0

delete() public static

delete(string $key, string $config = 'default'): bool

Удаляет ключ из кеша.

Использование:

Удаление из активной конфигурации кеша.

Cache::delete('my_data');

Удаление из конкретной конфигурации кеша.

Cache::delete('my_data', 'long_term');

Параметры

string $key

Идентификатор данных

string $config optional

имя конфигурации для использования. По умолчанию 'default'

Возвращает

bool

deleteMany() public static

deleteMany(iterable $keys, string $config = 'default'): bool

Удаляет несколько ключей из кеша.

Использование:

Удаление нескольких ключей из активной конфигурации кеша.

Cache::deleteMany(['my_data_1', 'my_data_2']);

Удаление из конкретной конфигурации кеша.

Cache::deleteMany(['my_data_1', 'my_data_2], 'long_term');

Параметры

iterable $keys

Массив или Traversable удаляемых ключей кеша

string $config optional

имя конфигурации для использования. По умолчанию 'default'

Возвращает

bool

Исключения

Cake\Cache\InvalidArgumentException

disable() public static

disable(): void

Отключить кеширование.

При отключении все операции кеширования вернут null.

Возвращает

void

drop() public static

drop(string $config): bool

Удаляет построенный адаптер.

Если вы хотите изменить существующую конфигурацию, вы должны её удалить, изменить конфигурацию, а затем повторно добавить.

Если реализующие объекты поддерживают объект $_registry, то именованная конфигурация также будет загружена из реестра.

Параметры

string $config

Существующая конфигурация, которую вы хотите удалить.

Возвращает

bool

enable() public static

enable(): void

Включить кеширование.

Если кеширование было отключено с помощью Cache::disable(), этот метод обратит это действие вспять.

Возвращает

void

enabled() public static

enabled(): bool

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

Возвращает

bool

engine() public static

engine(string $config): Psr\SimpleCache\CacheInterfaceCake\Cache\CacheEngineInterface

Получить объект движка кеша для указанной конфигурации кеша.

Параметры

string $config

Имя настроенного кеш-бекенда.

Возвращает

Psr\SimpleCache\CacheInterfaceCake\Cache\CacheEngineInterface

getConfig() public static

getConfig(string $key): mixed|null

Читает существующую конфигурацию.

Параметры

string $key

Имя конфигурации.

Возвращает

mixed|null

getConfigOrFail() public static

getConfigOrFail(string $key): mixed

Читает существующую конфигурацию по заданному ключу.

Значение конфигурации по этому ключу должно существовать, оно никогда не может быть null.

Параметры

string $key

Имя конфигурации.

Возвращает

mixed

Исключения

InvalidArgumentException
Если значение не существует.

getDsnClassMap() public static

getDsnClassMap(): string[]

Возвращает карту класса DSN для этого класса.

Возвращает

string[]

getRegistry() public static

getRegistry(): Cake\Cache\CacheRegistry

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

Возвращает

Cake\Cache\CacheRegistry

groupConfigs() public static

groupConfigs(string|null $group = null): array

Получить отображение названий групп к конфигурациям.

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 optional

имя группы или null для получения всех сопоставлений групп

Возвращает

array

Исключения

Cake\Cache\InvalidArgumentException

increment() public static

increment(string $key, int $offset = 1, string $config = 'default'): int|false

Увеличить число по ключу и вернуть увеличенное значение.

Параметры

string $key

Идентификатор данных

int $offset необязательно

На сколько увеличить

string $config необязательно

Необязательное имя конфигурации. По умолчанию 'default'

Возвращает

int|false

Исключения

Cake\Cache\InvalidArgumentException
Когда offset < 0

parseDsn() public static

parseDsn(string $dsn): array

Парсит 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 также парсятся и устанавливаются в качестве значений в возвращаемой конфигурации.

Параметры

string $dsn

Строка DSN для преобразования в массив конфигурации

Возвращает

array

Исключения

InvalidArgumentException
Если не передана строка или передана некорректная строка

pool() public static

pool(string $config): Psr\SimpleCache\CacheInterfaceCake\Cache\CacheEngineInterface

Получить объект SimpleCacheEngine для указанного пула кэша.

Параметры

string $config

Имя настроенного кэширующего бэкенда.

Возвращает

Psr\SimpleCache\CacheInterfaceCake\Cache\CacheEngineInterface

read() public static

read(string $key, string $config = 'default'): mixed

Считать значение по ключу из кэша.

Использование:

Чтение из активной конфигурации кэша.

Cache::read('my_data');

Чтение из конкретной конфигурации кэша.

Cache::read('my_data', 'long_term');

Параметры

string $key

Идентификатор данных

string $config необязательно

Необязательное имя конфигурации для использования. По умолчанию 'default'

Возвращает

mixed

readMany() public static

readMany(iterable $keys, string $config = 'default'): iterable

Считать значения по множеству ключей из кэша.

Использование:

Чтение множества ключей из активной конфигурации кэша.

Cache::readMany(['my_data_1', 'my_data_2]);

Чтение из конкретной конфигурации кэша.

Cache::readMany(['my_data_1', 'my_data_2], 'long_term');

Параметры

iterable $keys

Массив или Traversable ключей для извлечения из кэша

string $config необязательно

Необязательное имя конфигурации для использования. По умолчанию 'default'

Возвращает

iterable

Исключения

Cake\Cache\InvalidArgumentException

remember() public static

remember(string $key, callable $callable, string $config = 'default'): mixed

Предоставляет возможность легко выполнить кэширование чтения.

Если $key не задан в $config, будет вызван $callable. Результаты будут сохранены в конфигурации кэша по ключу.

Примеры:

Использование замыкания для предоставления данных, предположим, что $this это объект Table:

$results = Cache::remember('all_articles', function () {
     return $this->find('all')->toArray();
});

Параметры

string $key

Ключ кэша для чтения/хранения данных.

callable $callable

Вызываемый объект, который предоставляет данные в случае, когда ключ кэша пуст. Может быть любого типа, поддерживаемого PHP.

string $config необязательно

Конфигурация кэша для использования в этой операции. По умолчанию default.

Возвращает

mixed

setConfig() public static

setConfig(string|array $key, array|object|null $config = null): void

Этот метод может использоваться для определения адаптеров конфигурации для приложения.

Чтобы изменить конфигурацию адаптера во время выполнения, сначала удалите адаптер, а затем переконфигурируйте его.

Адаптеры не будут созданы до тех пор, пока не будет выполнено первое действие.

Использование

Предполагая, что имя класса Cache, поддерживаются следующие сценарии:

Настройка движка кэширования.

Cache::setConfig('default', $settings);

Вставка созданного адаптера:

Cache::setConfig('default', $instance);

Настройка нескольких адаптеров одновременно:

Cache::setConfig($arrayOfConfig);

Параметры

string|array $key

Имя конфигурации или массив нескольких конфигураций.

array|object|null $config необязательно

Массив имя => данные конфигурации для адаптера.

Возвращает

void

Исключения

BadMethodCallException
При попытке изменить существующую конфигурацию.
LogicException
При попытке сохранить некорректный структурированный массив конфигурации.

setDsnClassMap() public static

setDsnClassMap(string[] $map): void

Обновляет карту соответствия DSN для данного класса.

Параметры

string[] $map

Добавления/изменения в карту классов для применения.

Возвращает

void

setRegistry() public static

setRegistry(Cake\Cache\CacheRegistry $registry): void

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

Также позволяет вставить новый экземпляр реестра.

Параметры

Cake\Cache\CacheRegistry $registry

Вставляемый объект реестра.

Возвращает

void

write() public static

write(string $key, mixed $value, string $config = 'default'): bool

Записать данные для ключа в кэш.

Использование:

Запись в активную конфигурацию кэша:

Cache::write('cached_data', $data);

Запись в определенную конфигурацию кэша:

Cache::write('cached_data', $data, 'long_term');

Параметры

string $key

Идентификатор данных

mixed $value

Данные для кэширования - все, кроме ресурса

string $config необязательно

Необязательное имя конфигурации для записи. По умолчанию 'default'

Возвращает

bool

writeMany() public static

writeMany(iterable $data, string $config = 'default'): bool

Записать данные для множества ключей в кэш.

Использование:

Запись во активную конфигурацию кэша:

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');

Параметры

iterable $data

Массив или Traversable данных, которые нужно сохранить в кэше

string $config необязательно

Необязательное имя конфигурации для записи. По умолчанию 'default'

Возвращает

bool

Исключения

Cake\Cache\InvalidArgumentException

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

$_config protected static

Наборы конфигурации.

Тип

array

$_dsnClassMap protected static

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

Тип

string[]

$_enabled protected static

Флаг, показывающий, включен ли кеширование.

Тип

bool

$_groups protected static

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

Тип

array

$_registry protected static

Регистр кеша, используемый для создания и использования адаптеров кеша.

Тип

Cake\Cache\CacheRegistry|null

© 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/4.2/class-Cake.Cache.Cache.html

Spec-Zone.ru

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