Spec-Zone.ru › Yii 2.0

Интерфейс yii\caching\CacheInterface

Все классы | Методы
Extends ArrayAccess
Implemented by yii\caching\ApcCache, yii\caching\ArrayCache, yii\caching\Cache, yii\caching\DbCache, yii\caching\DummyCache, yii\caching\FileCache, yii\caching\MemCache, yii\caching\WinCache, yii\caching\XCache, yii\caching\ZendDataCache, yii\mongodb\Cache, yii\redis\Cache
Available since version 2.0.13.
Исходный код https://github.com/yiisoft/yii2/blob/master/framework/caching/CacheInterface.php

CacheInterface — базовый интерфейс для кэширования.

Элемент данных может быть сохранен в кэше с помощью вызова set(), а затем извлечён позже (в том же или другом запросе) с помощью get(). В обоих операциях требуется ключ, идентифицирующий элемент данных. При вызове set() также можно указать время истечения срока действия и/или зависимость dependency. Если элемент данных истекает или зависимость меняется в момент вызова get(), кэш вернёт данные.

Типичный шаблон использования кэша выглядит следующим образом:

$key = 'demo';
$data = $cache->get($key);
if ($data === false) {
    // ...generate $data here...
    $cache->set($key, $data, $duration, $dependency);
}

Поскольку CacheInterface расширяет интерфейс ArrayAccess, его можно использовать как массив. Например,

$cache['foo'] = 'some data';
echo $cache['foo'];

Для получения более подробной информации и информации об использовании кэша см. статью руководства по кэшированию.

Общедоступные методы

Метод Описание Определено в
add() Сохраняет значение, идентифицируемое ключом, в кэше, если в кэше нет этого ключа. yii\caching\CacheInterface
buildKey() Создаёт нормализованный ключ кэша из заданного ключа. yii\caching\CacheInterface
delete() Удаляет значение с указанным ключом из кэша yii\caching\CacheInterface
exists() Проверяет, существует ли указанный ключ в кэше. yii\caching\CacheInterface
flush() Удаляет все значения из кэша. yii\caching\CacheInterface
get() Извлекает значение из кэша с указанным ключом. yii\caching\CacheInterface
getOrSet() Метод объединяет методы set() и get() для извлечения значения, идентифицированного ключом $key, или для сохранения результата выполнения $callable, если для $key нет кэшированного значения. yii\caching\CacheInterface
multiAdd() Сохраняет несколько элементов в кэше. Каждый элемент содержит значение, идентифицируемое ключом. yii\caching\CacheInterface
multiGet() Извлекает несколько значений из кэша по указанным ключам. yii\caching\CacheInterface
multiSet() Сохраняет несколько элементов в кэше. Каждый элемент содержит значение, идентифицируемое ключом. yii\caching\CacheInterface
set() Сохраняет значение, идентифицируемое ключом, в кэше. yii\caching\CacheInterface

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

add() public abstract method

Сохраняет значение, идентифицируемое ключом, в кэше, если этот ключ в кэше отсутствует.

Если ключ уже существует в кэше, ничего не делается.

public abstract boolean add ( $key, $value, $duration = 0, $dependency = null )
$key mixed

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

$value mixed

Значение, подлежащее кэшированию

$duration integer

Количество секунд, в течение которых кэшированное значение будет действительным. 0 означает, что значение никогда не истекает.

$dependency yii\caching\Dependency

Зависимость кэшируемого элемента. Если зависимость меняется, соответствующее значение в кэше будет аннулировано при получении с помощью get(). Этот параметр игнорируется, если \yii\caching\serializer ложно.

return boolean

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

buildKey() public abstract method

Строит нормализованный ключ кэша из заданного ключа.

Если заданный ключ является строкой, содержащей только буквенно-цифровые символы и не более 32 символов, то ключ возвращается с префиксом \yii\caching\keyPrefix. В противном случае генерируется нормализованный ключ, путем сериализации заданного ключа, применения хеширования MD5 и добавления префикса \yii\caching\keyPrefix.

public abstract string buildKey ( $key )
$key mixed

Ключ, который нужно нормализовать

return string

Сгенерированный ключ кэша

delete() public abstract method

Удаляет значение с указанным ключом из кэша

public abstract boolean delete ( $key )
$key mixed

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

return boolean

Результат, если удаление прошло без ошибок

exists() public abstract method

Проверяет, существует ли указанный ключ в кэше.

Это может быть быстрее, чем получение значения из кэша, если данные объёмные. В случае, если кэш не поддерживает эту функцию напрямую, этот метод попытается смоделировать её, но не даст повышения производительности по сравнению с прямым получением. Обратите внимание, что этот метод не проверяет, изменилась ли зависимость, связанная с кэшированными данными. В результате вызов get() может вернуть false, в то время как exists вернёт true.

public abstract boolean exists ( $key )
$key mixed

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

return boolean

True, если значение существует в кэше, false — если значение отсутствует в кэше или истекло.

flush() public abstract method

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

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

public abstract boolean flush ( )
return boolean

Указывает, была ли успешной операция очистки кэша.

get() public abstract method

Извлекает значение из кэша по заданному ключу.

public abstract mixed get ( $key )
$key mixed

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

return mixed

Значение, сохранённое в кэше; false, если значение не найдено в кэше, истекло или изменилась зависимость, связанная с кэшированными данными.

getOrSet() public abstract method

Метод объединяет методы set() и get() для получения значения по ключу $key или для сохранения результата выполнения $callable, если для ключа $key в кэше нет данных.

Пример использования:

public function getTopProducts($count = 10) {
    $cache = $this->cache; // Could be Yii::$app->cache
    return $cache->getOrSet(['top-n-products', 'n' => $count], function ($cache) use ($count) {
        return Products::find()->mostPopular()->limit(10)->all();
    }, 1000);
}
public abstract mixed getOrSet ( $key, $callable, $duration = null, $dependency = null )
$key mixed

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

$callable callable|Closure

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

$duration integer

Значение по умолчанию для периода времени в секундах, по истечении которого кэш истекает. Если не указано, используется значение \yii\caching\defaultDuration.

$dependency yii\caching\Dependency

Зависимость кэшируемого элемента. Если зависимость меняется, соответствующее значение в кэше будет аннулировано при получении с помощью get(). Этот параметр игнорируется, если \yii\caching\serializer ложно.

return mixed

Результат выполнения $callable

multiAdd() public abstract method

Сохраняет несколько элементов в кэше. Каждый элемент содержит значение, идентифицируемое ключом.

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

public abstract array multiAdd ( $items, $duration = 0, $dependency = null )
$items array

Элементы, подлежащие кэшированию, в виде пар ключ-значение.

$duration integer

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

$dependency yii\caching\Dependency

Зависимость кэшируемых элементов. Если зависимость меняется, соответствующие значения в кэше будут аннулированы при извлечении через get(). Этот параметр игнорируется, если \yii\caching\serializer ложно.

return array

Массив ключей, для которых операция добавления не удалась

multiGet() public abstract method

Извлекает несколько значений из кэша по заданным ключам.

Некоторые кэши (например, memcache, apc) позволяют одновременно извлекать несколько кэшированных значений, что может повысить производительность. Если кэш не поддерживает эту функцию напрямую, этот метод попытается смоделировать её.

public abstract array multiGet ( $keys )
$keys string[]

Список строковых ключей, идентифицирующих кэшированные значения.

return array

Список кэшированных значений, соответствующих указанным ключам. Массив возвращается в виде пар (ключ, значение). Если значение не кэшировано или истекло, соответствующее значение в массиве будет false.

multiSet() public abstract method

Сохраняет несколько элементов в кэше. Каждый элемент содержит значение, идентифицируемое ключом.

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

public abstract array multiSet ( $items, $duration = 0, $dependency = null )
$items array

Элементы, подлежащие кешированию, в виде пар ключ-значение.

$duration integer

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

$dependency yii\caching\Dependency

Зависимость кешированных элементов. Если зависимость изменяется, соответствующие значения в кэше будут аннулированы при получении через get(). Этот параметр игнорируется, если \yii\caching\serializer имеет значение false.

return array

Массив неудачных ключей

set() public abstract method

Сохраняет значение, идентифицируемое ключом, в кэше.

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

public abstract boolean set ( $key, $value, $duration = null, $dependency = null )
$key mixed

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

$value mixed

Значение, подлежащее кешированию

$duration integer

Время действия в секундах, прежде чем кэш истечёт. Если не задано, используется значение по умолчанию \yii\caching\defaultDuration.

$dependency yii\caching\Dependency

Зависимость кешированного элемента. Если зависимость изменяется, соответствующее значение в кэше будет аннулировано при получении через get(). Этот параметр игнорируется, если \yii\caching\serializer имеет значение false.

return boolean

Успешно ли значение было сохранено в кэше

© 2008–2017 by Yii Software LLC
Licensed under the three clause BSD license.
http://www.yiiframework.com/doc-2.0/yii-caching-cacheinterface.html

Spec-Zone.ru

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