Spec-Zone.ru › CakePHP 3.5

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

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

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

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

  • remember() public static
    Предоставляет возможность легко выполнить кэширование с просмотром.
  • setRegistry() public static
    Установка экземпляра Cache Registry, используемого для создания и использования адаптеров кэширования.
  • 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 optional 'default'
Необязательное имя конфигурации для записи. По умолчанию 'default'.

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

boolean

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


clear()source public static

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

Удаление всех ключей из кэша.

Параметры

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

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


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 )

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

Устарело

Устарело начиная с версии 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 — это объект таблицы:

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

Параметры

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

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

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

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

Возвращает

mixed

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

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

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

Параметры

строка $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 optional 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–2018 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.5/class-Cake.Cache.Cache.html

Spec-Zone.ru

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