Spec-Zone.ru › CakePHP 3.8

Класс Cache

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

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

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

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

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

В целом, все операции 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\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 deprecated
    Получает движок, привязанный к имени определённой конфигурации.
  • gc() public static deprecated
    Сбор мусора
  • getRegistry() public static
    Возвращает экземпляр Cache Registry, используемый для создания и использования адаптеров кэша.
  • groupConfigs() public static
    Получает отображение имен групп на конфигурации.
  • increment() public static
    Увеличивает число по ключу и возвращает увеличенное значение.
  • pool() public static
    Получает объект SimpleCacheEngine для указанного пула кэша.
  • 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' )

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

Параметры

boolean $check опционально false

если true, проверит срок действия, иначе удалит все. Этот параметр станет бесполезным в версии 4.0, так как он устарел.

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

Возвращает

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

clearAll()source public static

clearAll( boolean $check = false )

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

Параметры

boolean $check необязательно false

если true, проверит срок действия, в противном случае удалит все. Этот параметр станет бесполезным в версии 4.0, так как устарел.

Возвращает

array
Код состояния. Для каждой конфигурации он сообщает о статусе операции

clearGroup()source public static

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

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

Параметры

string $group
название группы, которую нужно очистить
string $config необязательно 'default'
название конфигурации для использования. По умолчанию 'default'

Возвращает

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

Возвращает

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

Параметры

array $keys
Массив ключей кэша, которые нужно удалить
string $config необязательно 'default'
название конфигурации для использования. По умолчанию 'default'

Возвращает

array

массив булевых значений, которые равны 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 deprecated

engine( string $config )

Получить движок, прикрепленный к определенному имени конфигурации.

Если движок кэша и конфигурация отсутствуют, будет сгенерирована ошибка.

Устарело

3.7.0 Используйте Cache::pool() вместо этого. В версии 4.0 все движки кэша будут реализовывать интерфейс PSR16, и этот метод не возвращает объекты, реализующие этот интерфейс.


Параметры

string $config
Имя конфигурации, для которой требуется движок.

Возвращает

Cake\Cache\CacheEngine
При отключенном кэшировании возвращается null-движок

gc()source public static deprecated

gc( string $config = 'default' , integer|null $expires = null )

Сбор мусора

Постоянно удалять все истекшие и удаленные данные

Устарело

3.7.0 Будет удалено в версии 4.0

Параметры

string $config необязательно 'default'
[необязательно] Имя конфигурации, для которой необходимо произвести сбор мусора. По умолчанию 'default'
integer|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']] Вызов этого метода загрузит все настроенные движки.

Параметры

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

Возвращает

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

Выбрасывает

InvalidArgumentException

increment()source public static

increment( string $key , integer $offset = 1 , string $config = 'default' )

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

Параметры

string $key
Идентификатор данных
integer $offset необязательно 1
На сколько увеличить
string $config необязательно 'default'
Необязательное имя конфигурации. По умолчанию 'default'

Возвращает

mixed

новое значение или false, если данных нет, они не являются целым числом, или произошла ошибка при извлечении.


pool()source public static

pool( string $config )

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

Параметры

string $config
Имя настроенного бэкенда кэша.

Возвращает

Cake\Cache\SimpleCacheEngine

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

Параметры

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

Возвращает

массив

Массив, содержащий для каждого из заданных $keys кэшированные данные или false, если кэшированные данные не удалось извлечь.


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 function. Результаты будут затем сохранены в конфигурации кэша по ключу.

Примеры:

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

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

Параметры

строка $key
Ключ кэша для чтения/хранения данных.
вызываемый $callable

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

строка $config необязательно 'default'

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

Возвращает

смешанный

Если ключ найден: кэшированные данные, 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'

Возвращает

boolean
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 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
Существующая конфигурация, которую вы хотите удалить.

Возвращает

boolean
Успешность удаления, возвращает false, когда конфигурация не существует.

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

Исключения

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

setDsnClassMap()source public static

setDsnClassMap( array $map )

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

Параметры

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

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

$_dsnClassMapsource

protected static array

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

[
    'array' => 'Cake\Cache\Engine\ArrayEngine',
    '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.8/class-Cake.Cache.Cache.html

Spec-Zone.ru

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