Spec-Zone.ru › CakePHP 3.4

Класс 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 для настроек конфигурации
Параметр: string $name Название конфигурации
Параметр: array $config Необязательный ассоциативный массив настроек, передаваемых в движок
Возвращает: массив
[engine, settings] при успехе, false при ошибке
Расположение: 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
    Возвращает экземпляр Регистра кэша, используемый для создания и использования адаптеров кэширования.
  • groupConfigs() public static
    Получает сопоставление имён групп с конфигурацией.
  • increment() public static
    Увеличивает число по ключу и возвращает увеличенное значение.
  • read() public static
    Читает ключ из кэша.
  • readMany() public static
    Читает несколько ключей из кэша.
  • registry() public static
    Возвращает экземпляр Регистра кэша, используемый для создания и использования адаптеров кэширования. Также позволяет вводить новый экземпляр регистра.
  • remember() public static
    Предоставляет возможность легко выполнять кэширование с просмотром чтения.
  • setRegistry() public static
    Устанавливает экземпляр Регистра кэша, используемый для создания и использования адаптеров кэширования.
  • write() public static
    Записывает данные для ключа в кэш.
  • writeMany() public static
    Записывает данные для многих ключей в кэш.

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

_buildEngine()source protected static

_buildEngine( string $name )

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

Параметры

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

Параметры

string $key
Идентификатор данных.
mixed $value
Данные для кэширования — всё, кроме ресурса.
string $config необязательно 'default'
Необязательное имя конфигурации для записи. По умолчанию 'default'.

Возвращает

boolean

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


clear()source public static

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

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

Параметры

boolean $check необязательно false
если true, проверит срок действия, иначе удалит все
string $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'

Возвращает

массив

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


END_OF_DOCUMENT_MARKER

registry()source public static

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

Возвращает

mixed

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


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'

Возвращает

массив
Массив boolean значений для каждого ключа, 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);

Устарело

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

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, если не указано иное.

Обратите внимание, что аргументы querystring также анализируются и устанавливаются в качестве значений в возвращаемой конфигурации.

Параметры

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

Возвращает

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

Вызывает

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

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

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

true

$_groupssource

protected static array

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

[]

$_registrysource

protected static Cake\Core\ObjectRegistry

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

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

Spec-Zone.ru

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