Spec-Zone.ru › CakePHP 3.1

Класс Cache

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

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

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

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

Это настроило движок кэша APC с псевдонимом «shared». Затем вы можете читать и записывать в этот кэш-псевдоним, используя его в качестве параметра $config в различных методах 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 Необязательный ассоциативный массив настроек, передаваемых в движок
Возвращает: array
[engine, settings] при успехе, false при ошибке
Расположено в Cache/Cache.php

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

_buildEnginesource protected static

_buildEngine( string $name )

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

Параметры

string $name
Имя конфигурационного массива, для которого требуется экземпляр движка

Исключения

InvalidArgumentException
Если движок кэша не может быть создан.

addsource 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 — при ошибке или если ключ уже существовал.

clearsource public static

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

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

Параметры

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

Возвращает

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

clearGroupsource public static

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

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

Параметры

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

Возвращает

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

decrementsource public static

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

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

Параметры

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

Возвращает

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

deletesource 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 — если оно не существовало или не удалось удалить

deleteManysource 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 — если оно не существовало или не удалось удалить

disablesource public static

disable( )

Отключает кэширование.

При отключении все операции с кэшем вернут null.

enablesource public static

enable( )

Включает кэширование.

Если кэширование было отключено с помощью Cache::disable(), этот метод отменит это действие.

enabledsource public static

enabled( )

Проверяет, включено ли кэширование.

Возвращает

boolean
bool

enginesource public static

engine( string $config )

Извлекает движок, связанный с конкретным именем конфигурации.

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

Параметры

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

Возвращает

Cake\Cache\CacheEngine
В случае отключенного кэширования возвращается null-движок.
END_OF_DOCUMENT_MARKER

gcsource public static

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

Сбор мусора

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

Параметры

строка $config необязательный 'default'
[необязательно] Имя конфигурации, которую нужно собрать мусор. По умолчанию 'default'
целое число|null $expires необязательный null
[необязательно] Отметка времени истечения. По умолчанию NULL

groupConfigssource 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 для получения всех сопоставлений групп

Возвращает

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

Изначает

InvalidArgumentException
\InvalidArgumentException

incrementsource public static

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

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

Параметры

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

Возвращает

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

readsource public static

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

Чтение ключа из кэша.

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

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

Cache::read('my_data');

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

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

Параметры

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

Возвращает

mixed
Кэшированные данные или false, если данных нет, они истекли или произошла ошибка при получении

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

Возвращает

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

registrysource public static

registry( Cake\Core\ObjectRegistry $registry null )

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

Параметры

Cake\Core\ObjectRegistry $registry необязательный null
Вводимый объект реестра.

Возвращает

Cake\Core\ObjectRegistry
\Cake\Core\ObjectRegistry

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

Возвращает

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

writesource 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 при ошибке

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

Возвращает

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

Изначает

RuntimeException
\RuntimeException

Методы, используемые из Cake\Core\StaticConfigTrait

configsource public static

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

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

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

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

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

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

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

Cache::config('default');

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

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

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

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

Конфигурирование нескольких адаптеров одновременно:

Cache::config($arrayOfConfig);

Параметры

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

Возвращает

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

Изначает

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

configuredsource public static

configured( )

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

Возвращает

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

dropsource public static

drop( string $config )

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

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

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

Параметры

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

Возвращает

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

dsnClassMapsource public static

dsnClassMap( array $map null )

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

Параметры

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

Возвращает

array
массив

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

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

Параметры

string $dsn
Строка DSN, которую необходимо преобразовать в массив конфигурации

Возвращает

array
Массив конфигурации, который будет сохранён после анализа 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

Свойства, используемые из Cake\Core\StaticConfigTrait

$_configsource

protected static массив

Наборы конфигурации.

[]

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

Spec-Zone.ru

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