1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/talent518-threadtask

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
Cache.php 1.5 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
阿宝 Отправлено 4 лет назад 49a51cb
<?php
namespace app\threadtask;
class Cache extends \yii\caching\Cache {
/**
* @var string|resource
*/
public $cacheKey = '__ts_cache__';
public function init() {
$this->cacheKey = ts_var_declare($this->cacheKey);
}
public function buildKey($key) {
return ($_key = $this->isOneArray($key)) !== false ? $_key : ((is_object($key) || is_array($key)) ? md5(serialize($key)) : $key);
}
private function isOneArray($array) {
if(!is_array($array)) {
return is_object($array) ? false : $array;
}
$i = 0;
foreach($array as $key => &$val) {
if(($i++) !== $key) {
return false;
} else {
$_val = $this->isOneArray($val);
if($_val === false) {
return false;
} elseif(is_array($val)) {
$val = '[' . $_val . ']';
} else {
$val = $_val;
}
}
}
return implode('-', $array);
}
public function exists($key) {
return ts_var_exists($this->cacheKey, $this->buildKey($key));
}
protected function getValue($key) {
return ts_var_get($this->cacheKey, $key);
}
protected function setValue($key, $value, $expire) {
return ts_var_set($this->cacheKey, $key, $value, $expire > 0 ? $expire + time() : 0);
}
protected function addValue($key, $value, $expire) {
return ts_var_exists($this->cacheKey, $key) ? false : ts_var_set($this->cacheKey, $key, $value, $expire > 0 ? $expire + time() : 0);
}
protected function deleteValue($key) {
return ts_var_del($this->cacheKey, $key);
}
protected function flushValues() {
return ts_var_clean($this->cacheKey) !== false;
}
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/talent518-threadtask.git
git@gitlife.ru:oschina-mirror/talent518-threadtask.git
oschina-mirror
talent518-threadtask
talent518-threadtask
main