get() public method

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();
     }
 }
示例#4
0
 /**
  * @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);
 }
示例#5
0
 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'];
 }
示例#6
0
 /**
  * @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;
 }
示例#7
0
 private function getFromCache($part)
 {
     if ($this->enableCaching) {
         return $this->cache->get($this->buildKey($part));
     }
     return false;
 }
示例#8
0
 /**
  * @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;
     }
 }
示例#9
0
文件: Menu.php 项目: oakcms/oakcms
 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;
 }
示例#11
0
 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();
     }
 }
示例#12
0
 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;
 }
示例#14
0
 /**
  * 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;
 }
示例#15
0
 /**
  * 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;
 }
示例#16
0
 /**
  * Производит поиск модулей удовлетворяющих условиям запроса
  * @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);
 }
示例#17
0
 /**
  * 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);
 }
示例#18
0
 /**
  * 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);
 }
示例#21
0
 /**
  * 获取缓存数据
  * @param $name 缓存Key
  * @return mixed
  */
 protected function getCache($name)
 {
     return $this->cache->get($this->getCacheKey($name));
 }
示例#22
0
 /**
  * @param string $key
  * @return mixed
  */
 protected function getCacheData($key)
 {
     $value = isset($this->data[$key]) ? $this->data[$key] : null;
     return $value ?: $this->cache->get($key);
 }