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
- 1488 reads