缓存类增加tag方法 用于缓存标签设置 clear方法支持清除某个缓存标签的数据

This commit is contained in:
thinkphp
2016-08-17 16:12:49 +08:00
parent 65053bc1a5
commit 631334b31e
10 changed files with 283 additions and 26 deletions

View File

@@ -11,13 +11,14 @@
namespace think\cache\driver;
use think\cache\Driver;
use think\Exception;
/**
* Sqlite缓存驱动
* @author liu21st <liu21st@gmail.com>
*/
class Sqlite
class Sqlite extends Driver
{
protected $options = [
@@ -103,7 +104,13 @@ class Sqlite
//数据压缩
$value = gzcompress($value, 3);
}
$sql = 'REPLACE INTO ' . $this->options['table'] . ' (var, value,expire) VALUES (\'' . $name . '\', \'' . $value . '\', \'' . $expire . '\')';
if ($this->tag) {
$tag = $this->tag;
$this->tag = null;
} else {
$tag = '';
}
$sql = 'REPLACE INTO ' . $this->options['table'] . ' (var, value, expire, tag) VALUES (\'' . $name . '\', \'' . $value . '\', \'' . $expire . '\', \'' . $tag . '\')';
if (sqlite_query($this->handler, $sql)) {
return true;
}
@@ -161,12 +168,19 @@ class Sqlite
/**
* 清除缓存
* @access public
* @param string $tag 标签名
* @return boolean
*/
public function clear()
public function clear($tag = null)
{
if ($tag) {
$name = sqlite_escape_string($tag);
$sql = 'DELETE FROM ' . $this->options['table'] . ' WHERE tag=\'' . $name . '\'';
sqlite_query($this->handler, $sql);
return true;
}
$sql = 'DELETE FROM ' . $this->options['table'];
sqlite_query($this->handler, $sql);
return;
return true;
}
}