本文整理汇总了PHP中yii\caching\Cache::set方法的典型用法代码示例。如果您正苦于以下问题:PHP Cache::set方法的具体用法?PHP Cache::set怎么用?PHP Cache::set使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类yii\caching\Cache
的用法示例。
在下文中一共展示了Cache::set方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的PHP代码示例。
示例1: buildSitemapUrl
public function buildSitemapUrl($name)
{
$urls = $this->urls;
$sitemapData = $this->createControllerByID('default')->renderPartial('sitemap', ['urls' => $urls]);
$this->cacheProvider->set($this->cacheKey, $sitemapData, $this->cacheExpire);
return $sitemapData;
}
示例2: buildSitemap
/**
* Build and cache a site map.
* @return string
* @throws \yii\base\InvalidConfigException
*/
public function buildSitemap()
{
$urls = $this->urls;
foreach ($this->arrays as $key => $value) {
$arrayUrl = [];
if (is_callable($value)) {
$arrayUrl = call_user_func($value);
} else {
$arrayUrl = $value;
}
$urls = array_merge($urls, $arrayUrl);
}
foreach ($this->models as $modelName) {
/** @var behaviors\SitemapBehavior $model */
if (is_array($modelName)) {
$model = new $modelName['class']();
if (isset($modelName['behaviors'])) {
$model->attachBehaviors($modelName['behaviors']);
}
} else {
$model = new $modelName();
}
$urls = array_merge($urls, $model->generateSiteMap());
}
$sitemapData = $this->createControllerByID('default')->renderPartial('index', ['urls' => $urls]);
$this->cacheProvider->set($this->cacheKey, $sitemapData, $this->cacheExpire);
return $sitemapData;
}
示例3: endGathering
public function endGathering()
{
array_pop($this->cacheStack);
$elements = $this->elements[$this->currentStackId];
Yii::trace('End gathering:' . $this->currentStackId);
$dependencies = array_pop($this->cacheStackDependencies);
$this->cache->set($this->getCacheKey(), $elements, $this->cacheLifetime, $dependencies);
unset($this->elements[$this->currentStackId]);
$stack = $this->cacheStack;
$this->currentStackId = end($stack);
return $elements;
}
示例4: init
/**
* @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();
}
}
示例5: getToken
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: acquireLock
/**
* @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);
}
示例7: getAllAssignments
/**
* @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;
}
示例8: run
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
}
示例9: init
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();
}
}
示例10: load
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);
}
}
示例11: init
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();
}
}
示例12: buildSitemap
/**
* Build and cache a site map.
* @param bool $returnAsArray
* @return array|string
* @throws InvalidConfigException
*/
public function buildSitemap($returnAsArray = false)
{
$urls = $this->urls;
foreach ($this->models as $modelName) {
/** @var \kato\modules\sitemap\behaviors\SitemapBehavior $model */
if (is_array($modelName)) {
$model = new $modelName['class']();
if (isset($modelName['behaviors'])) {
$model->attachBehaviors($modelName['behaviors']);
}
} else {
$model = new $modelName();
}
$urls = array_merge($urls, $model->generateSiteMap());
}
if ($returnAsArray === true) {
return $urls;
}
$sitemapData = $this->createControllerByID('default')->renderPartial('index', ['urls' => $urls]);
$this->cacheProvider->set($this->cacheKey, $sitemapData, $this->cacheExpire);
return $sitemapData;
}
示例13: buildYml
/**
* Build and cache a yandex.market yml
* @return string
*/
public function buildYml()
{
$shop = new Shop();
$shop->attributes = $this->shopOptions;
$categoryModel = new $this->categoryModel();
$shop->categories = $categoryModel->generateCategories();
foreach ($this->offerModels as $modelName) {
/** @var YmlOfferBehavior $model */
if (is_array($modelName)) {
$model = new $modelName['class']();
} else {
$model = new $modelName();
}
$shop->offers = array_merge($shop->offers, $model->generateOffers());
}
if (!$shop->validate()) {
return $this->createControllerByID('default')->renderPartial('errors', ['shop' => $shop]);
}
$ymlData = $this->createControllerByID('default')->renderPartial('index', ['shop' => $shop]);
$this->cacheProvider->set($this->cacheKey, $ymlData, $this->cacheExpire);
return $ymlData;
}
示例14: get
/**
* 通过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;
}
示例15: getAppRoutes
/**
* 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;
}