php Кэш контракты. Использовать ли кеш или нет, работа с API -- пример метода
Primary tabs
Пример реализации, в котором можно указать при вызове использовать ли кеш или нет:
/**
* Данные по клиентам
*
* @param bool $useCache Опционально. Использовать ли кешнирование (по умолчанию не используется)
* @return array
*/
public function getClients($useCache = false)
{
/**
* @var анонимная функция, которая и выполняет всю нужную логику
* (используйте use для передачи в неё переменных из родительской
* области видимости)
*/
$getResponse = function() {
$responce = $this->client->ads()->getClients($this->accessToken,
['account_id' => $this->accountId]);
return $responce;
};
if ($useCache) { // кеш контрокат, использующий нашу функцию $getResponse()
$responce = $this->cache->get(__FUNCTION__, function (ItemInterface $item) use ($getResponse) {
$item->expiresAfter($this->defaultCacheLifetime);
$responce = $getResponse();
return $responce;
});
} else { // если без кеша, то прямой вызов
$responce = $getResponse();
}
// $this->cache->delete(__FUNCTION__);
return $responce;
}
- Log in to post comments
- 2204 reads