This commit is contained in:
thinkphp
2018-01-15 16:10:09 +08:00

View File

@@ -27,6 +27,8 @@ class File extends Driver
'data_compress' => false,
];
protected $expire;
/**
* 构造函数
* @param array $options
@@ -106,13 +108,15 @@ class File extends Driver
if (!is_file($filename)) {
return $default;
}
$content = file_get_contents($filename);
$content = file_get_contents($filename);
$this->expire = null;
if (false !== $content) {
$expire = (int) substr($content, 8, 12);
if (0 != $expire && time() > filemtime($filename) + $expire) {
return $default;
}
$content = substr($content, 32);
$this->expire = $expire;
$content = substr($content, 32);
if ($this->options['data_compress'] && function_exists('gzcompress')) {
//启用数据压缩
$content = gzuncompress($content);
@@ -170,11 +174,14 @@ class File extends Driver
public function inc($name, $step = 1)
{
if ($this->has($name)) {
$value = $this->get($name) + $step;
$value = $this->get($name) + $step;
$expire = $this->expire;
} else {
$value = $step;
$value = $step;
$expire = 0;
}
return $this->set($name, $value, 0) ? $value : false;
return $this->set($name, $value, $expire) ? $value : false;
}
/**
@@ -187,11 +194,14 @@ class File extends Driver
public function dec($name, $step = 1)
{
if ($this->has($name)) {
$value = $this->get($name) - $step;
$value = $this->get($name) - $step;
$expire = $this->expire;
} else {
$value = -$step;
$value = -$step;
$expire = 0;
}
return $this->set($name, $value, 0) ? $value : false;
return $this->set($name, $value, $expire) ? $value : false;
}
/**