Spec-Zone.ru › CakePHP 3.2

Класс 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\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 )

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

Параметры

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, то будет проверка срока действия, иначе будут удалены все

Возвращаемое значение

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

массив значений 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 )

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

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

Параметры

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

Возвращаемое значение

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

gc()source public static

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

Сбор мусора

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

Параметры

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

Параметры

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, если данные не существуют, не являются целым числом или произошла ошибка при получении их.


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

Параметры

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

Возвращаемое значение

array

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


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 это объект таблицы:

$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–2016 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.
http://api.cakephp.org/3.2/class-Cake.Cache.Cache.html

Spec-Zone.ru

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