Spec-Zone.ru › CakePHP 3.3

Класс 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 для PHP. Поддерживает wincache 1.1.0 и выше. Этот движок рекомендуется для развертывания на Windows с IIS.
  • RedisEngine — Использует redis и расширение php-redis для хранения данных кеша.

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

Cake\Cache\Cache использует Cake\Core\StaticConfigTrait
Пространство имён: Cake\Cache
См.: config/app.php для настроек конфигурации
Параметр: строка $name Имя конфигурации
Параметр: массив $config Необязательный ассоциативный массив настроек, передаваемых движку
Возвращает: массив
[движок, настройки] при успехе, false при ошибке
Расположение: Cache/Cache.php

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

  • $_dsnClassMap protected static
    array

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

  • $_enabled protected static
    boolean
    Флаг для отслеживания включения/выключения кеширования.
  • $_groups protected static
    array
    Сопоставление группы и конфигурации
  • $_registry protected static
    Cake\Cache\CacheRegistry
    Реестр кеша, используемый для создания и использования адаптеров кеша.
  • $_reset protected static
    array
    Следует ли сбрасывать настройки при следующем вызове Cache::set()?

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

  • _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
    Сбор мусора
  • groupConfigs() public static
    Получает сопоставление имён групп и конфигураций.
  • increment() public static
    Увеличивает число по ключу и возвращает увеличенное значение.
  • read() public static
    Читает ключ из кеша.
  • readMany() public static
    Читает несколько ключей из кеша.
  • registry() public static

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

  • remember() public static
    Предоставляет возможность легко реализовать кеширование с просмотром данных.
  • 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'.

Возвращает

булево

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


clear()source public static

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

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

Параметры

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

Возвращает

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

clearAll()source public static

clearAll( boolean $check false )

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

Параметры

булево $check необязательно false
если true, проверяет срок действия, иначе удаляет всё

Возвращает

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

clearGroup()source public static

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

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

Параметры

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

Возвращает

boolean
Истина, если группа кэша была успешно очищена, ложь в противном случае

decrement()source public static

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

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

Параметры

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

Возвращает

mixed

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


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
Истина, если значение было успешно удалено, ложь, если его не существовало или не удалось удалить

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

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'

Возвращает

mixed

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


read()source public static

read( string $key , string $config 'default' )

Прочитать ключ из кэша.

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

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

Cache::read('my_data');

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

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

Параметры

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

Возвращает

mixed
Данные кэша, или ложь, если данных нет, они истекли, или произошла ошибка при их получении

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


registry()source public static

registry( Cake\Core\ObjectRegistry $registry null )

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

Параметры

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

Возвращает

смешанное

Если ключ найден: кэшированные данные, false, если данные отсутствуют/просрочены или произошла ошибка. Если ключ не найден: булево значение, указывающее на успех записи


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'

Возвращает

булево значение
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

config( string|array $key , array|null $config null )

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

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

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

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

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

Чтение конфигурационных данных обратно:

Cache::config('default');

Настройка движка кеша.

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

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

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

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

Cache::config($arrayOfConfig);

Параметры

строка или массив $key
Имя конфигурации или массив нескольких конфигураций.
массив или null $config необязательно null
Массив пар имя => конфигурационные данные для адаптера.

Возвращает

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

Выбрасывает

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

configured()source public static

configured( )

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

Возвращает

массив
Массив конфигураций.

drop()source public static

drop( string $config )

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

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

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

Параметры

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

Возвращает

булево значение
Результат удаления, возвращает false, если конфигурация не существует.

dsnClassMap()source public static

dsnClassMap( array $map null )

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

Параметры

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

Возвращает

массив

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
Если не передана строка

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

$_dsnClassMapsource

protected static массив

Массив, сопоставляющий схемы 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 булево значение

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

true

$_groupssource

protected static массив

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

[]

$_registrysource

protected static Cake\Cache\CacheRegistry

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

$_resetsource

protected static массив

Нужно ли сбросить настройки при следующем вызове Cache::set();

false

© 2005–2017 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.3/class-Cake.Cache.Cache.html

Spec-Zone.ru

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