Spec-Zone.ru › CakePHP 4.3

Класс 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 - Использует только память для хранения всех данных, фактически не является постоянным движком. Может быть полезен в тестовой или CLI среде.
  • 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<string, mixed>

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

  • $_dsnClassMap protected static
    array<string, string>

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

  • $_enabled protected static
    bool

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

  • $_groups protected static
    array<string, 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

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

  • 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

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

  • 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(): array<string, bool>

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

Возвращает

array<string, bool>

clearGroup() public static

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

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

Параметры

string $group

Имя группы, которую нужно очистить.

string $config optional

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

Возвращает

bool

configured() public static

configured(): array<string>

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

Возвращает

array<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
если смещение < 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(): array<string, string>

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

Возвращает

array<string, string>

getRegistry() public static

getRegistry(): Cake\Cache\CacheRegistry

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

Возвращает

Cake\Cache\CacheRegistry

groupConfigs() public static

groupConfigs(string|null $group = null): array<string, 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<string, 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<string, mixed>

Парсит 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<string, mixed>

Исключения

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(array<string, mixed>|string $key, object|array<string, mixed>|null $config = null): void

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

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

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

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

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

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

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

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

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

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

Cache::setConfig($arrayOfConfig);

Параметры

array<string, mixed>|string $key

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

object|array<string, mixed>|null $config необязательно

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

Возвращает

void

Исключения

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

setDsnClassMap() public static

setDsnClassMap(array<string, string> $map): void

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

Параметры

array<string, 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<string, mixed>

$_dsnClassMap protected static

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

Тип

array<string, string>

$_enabled protected static

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

Тип

bool

$_groups protected static

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

Тип

array<string, 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.3/class-Cake.Cache.Cache.html

Spec-Zone.ru

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