Retrieves a value from cache with a specified key.
public get ( mixed $key ) : mixed | ||
$key | mixed | a key identifying the cached value. This can be a simple string or a complex data structure consisting of factors representing the key. |
return | mixed | the value stored in cache, false if the value is not in the cache, expired, or the dependency associated with the cached data has changed. |
/** * @inheritdoc */ public function load() { $contents = $this->yiiCache->get($this->key); if ($contents !== false) { $this->setFromStorage($contents); } }
protected function load() { $this->items = $this->cache->get('settings'); if (!$this->items) { $this->items = []; $rows = (new Query())->from($this->tableName)->all($this->db); foreach ($rows as $row) { $this->items[$row['category']][$row['key']] = @unserialize($row['value']); } $this->cache->set('settings', $this->items, $this->cacheTime); } }
/** * @throws InvalidConfigException */ public function init() { if ($this->cache) { /** @var Cache $cache */ $this->cache = Instance::ensure($this->cache, Cache::className()); $cacheKey = __CLASS__; if (($this->_paramsInfo = $this->cache->get($cacheKey)) === false) { $this->_paramsInfo = $this->fetchParamsInfo(); $this->cache->set($cacheKey, $this->_paramsInfo, $this->cacheDuration, $this->cacheDependency); } } else { $this->_paramsInfo = $this->fetchParamsInfo(); } }
/** * @inheritdoc */ protected function acquireLock($name, $timeout = 0) { if (!$this->cache instanceof Cache) { return false; } $waitTime = 0; while ($this->cache->get($this->getCacheKey($name)) !== false) { $waitTime++; if ($waitTime > $timeout) { return false; } sleep(1); } return $this->cache->set($this->getCacheKey($name), true); }
public function getToken($userId, $name, $portraitUri) { $cacheKey = 'token:' . serialize([strval($userId), strval($name), strval($portraitUri)]); if (!$this->cache instanceof Cache || false == ($results = $this->cache->get($cacheKey)) || !isset($results['token'])) { $response = $this->request('/user/getToken', ['userId' => $this->getUserAlias($userId), 'name' => $name, 'portraitUri' => $portraitUri]); $results = Json::decode($response, true); if (!isset($results['code']) || 200 != $results['code']) { throw new ResultException($response, '获取token失败'); } if ($this->cache instanceof Cache) { $this->cache->set($cacheKey, $results, $this->tokenCacheDuration); } } return $results['token']; }
/** * @return array * @throws \yii\base\InvalidConfigException */ protected function getAllAssignments() { $result = []; $useCache = $this->useCache === true; if ($useCache && $this->cache->exists('assignments-0')) { echo ' > Assignments cache exists.' . PHP_EOL; $answer = $this->prompt(' > Use cache? [yes/no]'); if (strpos($answer, 'y') === 0) { $this->cacheIterator(function ($key) use(&$result) { $result = ArrayHelper::merge($result, $this->cache->get($key)); }); return $result; } } /** @var \yii\db\ActiveQuery $UsersQuery */ $UsersQuery = call_user_func([$this->user->identityClass, 'find']); /** @var \yii\web\IdentityInterface[] $Users */ foreach ($UsersQuery->batch($this->batchSize, $this->db) as $k => $Users) { $chunk = []; foreach ($Users as $User) { $pk = $User->getId(); $assignments = array_keys($this->authManager->getAssignments($pk)); $chunk[$pk] = $assignments; $result[$pk] = $assignments; } if ($useCache) { $this->cache->set(sprintf('assignments-%d', $k), $chunk); } } return $result; }
private function getFromCache($part) { if ($this->enableCaching) { return $this->cache->get($this->buildKey($part)); } return false; }
/** * @param int|string $userId * @param string $key * @return bool|mixed */ protected function getFromCache($userId, $key) { if ($this->cacheIsActive()) { return $this->cache->get($this->buildCacheKey($userId, $key)); } else { return false; } }
public function run() { if ($this->cache) { /** @var Cache $cache */ $this->cache = Instance::ensure($this->cache, Cache::className()); $cacheKey = [__CLASS__, $this->items]; if (($this->items = $this->cache->get($cacheKey)) === false) { $this->items = ModuleEvent::trigger(self::EVENT_FETCH_ITEMS, new MenuItemsEvent(['items' => $this->items]), 'items'); $this->cache->set($cacheKey, $this->items, $this->cacheDuration, $this->cacheDependency); } } else { $this->items = ModuleEvent::trigger(self::EVENT_FETCH_ITEMS, new MenuItemsEvent(['items' => $this->items]), 'items'); } $this->items += $this->customItems; parent::run(); // TODO: Change the autogenerated stub }
/** * Performs the actual dependency checking. * @param Cache $cache the cache component that is currently evaluating this dependency * @return boolean whether the dependency is changed or not. * @throws InvalidConfigException if [[group]] is not set. */ public function getHasChanged($cache) { if ($this->group === null) { throw new InvalidConfigException('GroupDependency::group must be set'); } $version = $cache->get([__CLASS__, $this->group]); return $version === false || $version !== $this->data; }
public function init() { if ($this->cache) { /** @var Cache $cache */ $this->cache = Instance::ensure($this->cache, Cache::className()); $cacheKey = __CLASS__; if ((list($paths, $routes, $links) = $this->cache->get($cacheKey)) === false) { $this->createMap(); $this->cache->set($cacheKey, [$this->_paths, $this->_routes, $this->_links], $this->cacheDuration, $this->cacheDependency); } else { $this->_paths = $paths; $this->_routes = $routes; $this->_links = $links; } } else { $this->createMap(); } }
public function init() { if (!$this->language) { throw new InvalidConfigException(get_called_class() . '::language must be set.'); } if ($this->cache) { /** @var Cache $cache */ $this->cache = Instance::ensure($this->cache, Cache::className()); $cacheKey = [__CLASS__, $this->language]; if ((list($paths, $routes, $links) = $this->cache->get($cacheKey)) === false) { $this->createMap(); $this->cache->set($cacheKey, [$this->_paths, $this->_routes, $this->_links], $this->cacheDuration, $this->cacheDependency); } else { $this->_paths = $paths; $this->_routes = $routes; $this->_links = $links; } } else { $this->createMap(); } }
/** * 通过API查询IP信息 * @param null $ip * @return IpData|mixed */ public function get($ip = null) { $ip = $ip === null ? Yii::$app->request->userIP : $ip; $ipData = new IpData(); $cacheKey = $this->getCacheKey($ip); if ($this->cache !== null && ($json = $this->cache->get($cacheKey))) { $ipData->setAttributes(json_decode($json, true), false); return $ipData; } $context = stream_context_create(['http' => ['timeout' => 1]]); $url = $this->_url . $ip; try { $result = json_decode(file_get_contents($url, 0, $context), true); } catch (Exception $e) { $result = null; } if ($result && $result['code'] == 0) { $ipData->setAttributes($result['data'], false); $this->cache !== null && $this->cache->set($cacheKey, json_encode($ipData), $this->cacheDuration); } return $ipData; }
/** * Get data * @return array */ public function getData() { if ($this->_data === null) { if ($this->_cache !== null) { $cache = $this->_cache->get($this->cacheKey); if ($cache === false) { $this->_data = $this->_getDataFromDb(); $this->_setCache(); } else { $this->_data = $cache; } } else { $this->_data = $this->_getDataFromDb(); } } return $this->_data; }
/** * Get list of application routes * * @param string|null $module * * @return array */ public function getAppRoutes($module = null) { if ($module === null) { $module = Yii::$app; } elseif (is_string($module)) { $module = Yii::$app->getModule($module); } $key = [__METHOD__, $module->getUniqueId()]; $result = $this->cache !== null ? $this->cache->get($key) : false; if ($result === false) { $result = []; $this->getRouteRecursive($module, $result); if ($this->cache !== null) { $this->cache->set($key, $result, $this->cacheDuration, new TagDependency(['tags' => self::CACHE_TAG])); } } return $result; }
/** * Производит поиск модулей удовлетворяющих условиям запроса * @return string[] Modules Ids */ public function find() { if ($this->cache) { $cacheKey = $this->getFindCacheKey(); if (($result = $this->cache->get($cacheKey)) === false) { $modules = $this->findModules($this->_nodeOf ? $this->_nodeOf : Yii::$app); if ($this->_orderBy) { usort($modules, [$this, 'compareModules']); } $result = $this->extractModuleIds($modules); $this->cache->set($cacheKey, $result, $this->cacheDuration, $this->cacheDependency); } return $result; } $modules = $this->findModules($this->_nodeOf ? $this->_nodeOf : Yii::$app); if ($this->_orderBy) { usort($modules, [$this, 'compareModules']); } return $this->extractModuleIds($modules); }
/** * Renders the menu. */ public function run() { if ($this->route === null && Yii::$app->controller !== null) { $this->route = Yii::$app->controller->getRoute(); } if ($this->cache) { /** @var Cache $cache */ $this->cache = Instance::ensure($this->cache, Cache::className()); $cacheKey = [__CLASS__, $this->items]; if (($this->items = $this->cache->get($cacheKey)) === false) { $this->items = ModuleEvent::trigger(self::EVENT_FETCH_ITEMS, new DesktopEvent(['items' => $this->items]), 'items'); $this->cache->set($cacheKey, $this->items, $this->cacheDuration, $this->cacheDependency); } } else { $this->items = ModuleEvent::trigger(self::EVENT_FETCH_ITEMS, new DesktopEvent(['items' => $this->items]), 'items'); } $this->normalizeItems(); $options = $this->options; $tag = ArrayHelper::remove($options, 'tag', 'div'); echo Html::tag($tag, $this->renderItems($this->columns), $options); }
/** * Get OAuth2 token using client credentials granted method. * @param boolean $isForce Whether force regenerated token. * @return string */ public function getToken($isForce = false) { if ($this->_token === null || $isForce) { $key = __CLASS__ . '#' . $this->clientId . '#token'; if ($this->cache instanceof Cache && !$isForce) { $token = $this->cache->get($key); if ($token) { $this->_token = $token['access_token']; goto RESULT; } } $client = $this->getClient(); $url = static::buildUrl($this->baseUrl, $this->tokenPath); $res = $client->post($url, ['json' => ['client_id' => $this->clientId, 'client_secret' => $this->clientSecret, 'grant_type' => 'client_credentials']]); $tmp = $res->json(); $this->_token = $tmp['access_token']; if ($this->cache instanceof Cache) { $this->cache->set($key, $tmp, $tmp['expires_in'] - 300); } } RESULT: return $this->_token; }
/** * Set row value * @param $name * @return mixed */ public function get($name) { return $this->_cache->get($this->prefix . $name); }
/** * @param $key * * @return mixed * * @see yii\caching\Cache::get() */ public function get($key) { return $this->cache->get($key); }
/** * 获取缓存数据 * @param $name 缓存Key * @return mixed */ protected function getCache($name) { return $this->cache->get($this->getCacheKey($name)); }
/** * @param string $key * @return mixed */ protected function getCacheData($key) { $value = isset($this->data[$key]) ? $this->data[$key] : null; return $value ?: $this->cache->get($key); }