更新到正式版1.0
This commit is contained in:
@@ -1,115 +1,115 @@
|
||||
<?php
|
||||
/*
|
||||
* @copyright QiaoQiaoShiDai Internet Technology(Shanghai)Co.,Ltd
|
||||
* @license https://www.oaooa.com/licenses/
|
||||
*
|
||||
* @link https://www.oaooa.com
|
||||
* @author zyx(zyx@oaooa.com)
|
||||
*/
|
||||
|
||||
if(!defined('IN_OAOOA')) {
|
||||
exit('Access Denied');
|
||||
}
|
||||
|
||||
class table_syscache extends dzz_table
|
||||
{
|
||||
private $_isfilecache;
|
||||
|
||||
public function __construct() {
|
||||
|
||||
$this->_table = 'syscache';
|
||||
$this->_pk = 'cname';
|
||||
$this->_pre_cache_key = '';
|
||||
$this->_isfilecache = getglobal('config/cache/type') == 'file';
|
||||
$this->_allowmem = memory('check');
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function fetch($cachename) {
|
||||
$data = $this->fetch_all(array($cachename));
|
||||
return isset($data[$cachename]) ? $data[$cachename] : false;
|
||||
}
|
||||
public function fetch_all($cachenames) {
|
||||
|
||||
$data = array();
|
||||
$cachenames = is_array($cachenames) ? $cachenames : array($cachenames);
|
||||
if($this->_allowmem) {
|
||||
$data = memory('get', $cachenames);
|
||||
$newarray = $data !== false ? array_diff($cachenames, array_keys($data)) : $cachenames;
|
||||
if(empty($newarray)) {
|
||||
return $data;
|
||||
} else {
|
||||
$cachenames = $newarray;
|
||||
}
|
||||
}
|
||||
|
||||
if($this->_isfilecache) {
|
||||
$lostcaches = array();
|
||||
foreach($cachenames as $cachename) {
|
||||
if(!@include_once(DZZ_ROOT.'./data/cache/cache_'.$cachename.'.php')) {
|
||||
$lostcaches[] = $cachename;
|
||||
} elseif($this->_allowmem) {
|
||||
memory('set', $cachename, $data[$cachename]);
|
||||
}
|
||||
}
|
||||
if(!$lostcaches) {
|
||||
return $data;
|
||||
}
|
||||
$cachenames = $lostcaches;
|
||||
unset($lostcaches);
|
||||
}
|
||||
|
||||
$query = DB::query('SELECT * FROM '.DB::table($this->_table).' WHERE '.DB::field('cname', $cachenames));
|
||||
while($syscache = DB::fetch($query)) {
|
||||
$data[$syscache['cname']] = $syscache['ctype'] ? unserialize($syscache['data']) : $syscache['data'];
|
||||
$this->_allowmem && (memory('set', $syscache['cname'], $data[$syscache['cname']]));
|
||||
if($this->_isfilecache) {
|
||||
$cachedata = '$data[\''.$syscache['cname'].'\'] = '.var_export($data[$syscache['cname']], true).";\n\n";
|
||||
if(($fp = @fopen(DZZ_ROOT.'./data/cache/cache_'.$syscache['cname'].'.php', 'wb'))) {
|
||||
fwrite($fp, "<?php\n//Dzz! cache file, DO NOT modify me!\n//Identify: ".md5($syscache['cname'].$cachedata.getglobal('config/security/authkey'))."\n\n$cachedata?>");
|
||||
fclose($fp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach($cachenames as $name) {
|
||||
if($data[$name] === null) {
|
||||
$data[$name] = null;
|
||||
$this->_allowmem && (memory('set', $name, array()));
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function insert($cachename, $data) {
|
||||
parent::insert(array(
|
||||
'cname' => $cachename,
|
||||
'ctype' => is_array($data) ? 1 : 0,
|
||||
'dateline' => TIMESTAMP,
|
||||
'data' => is_array($data) ? serialize($data) : $data,
|
||||
), false, true);
|
||||
|
||||
if($this->_allowmem && memory('get', $cachename) !== false) {
|
||||
memory('set', $cachename, $data);
|
||||
}
|
||||
$this->_isfilecache && @unlink(DZZ_ROOT.'./data/cache/cache_'.$cachename.'.php');
|
||||
}
|
||||
|
||||
public function update($cachename, $data,$unbuffered = false, $low_priority = false) {
|
||||
$this->insert($cachename, $data);
|
||||
}
|
||||
|
||||
public function delete($cachenames,$unbuffered = false) {
|
||||
parent::delete($cachenames);
|
||||
if($this->_allowmem || $this->_isfilecache) {
|
||||
foreach((array)$cachenames as $cachename) {
|
||||
$this->_allowmem && memory('rm', $cachename);
|
||||
$this->_isfilecache && @unlink(DZZ_ROOT.'./data/cache/cache_'.$cachename.'.php');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
<?php
|
||||
/*
|
||||
* @copyright QiaoQiaoShiDai Internet Technology(Shanghai)Co.,Ltd
|
||||
* @license https://www.oaooa.com/licenses/
|
||||
*
|
||||
* @link https://www.oaooa.com
|
||||
* @author zyx(zyx@oaooa.com)
|
||||
*/
|
||||
|
||||
if(!defined('IN_OAOOA')) {
|
||||
exit('Access Denied');
|
||||
}
|
||||
|
||||
class table_syscache extends dzz_table
|
||||
{
|
||||
private $_isfilecache;
|
||||
|
||||
public function __construct() {
|
||||
|
||||
$this->_table = 'syscache';
|
||||
$this->_pk = 'cname';
|
||||
$this->_pre_cache_key = '';
|
||||
$this->_isfilecache = getglobal('config/cache/type') == 'file';
|
||||
$this->_allowmem = memory('check');
|
||||
|
||||
parent::__construct();
|
||||
}
|
||||
|
||||
public function fetch($cachename) {
|
||||
$data = $this->fetch_all(array($cachename));
|
||||
return isset($data[$cachename]) ? $data[$cachename] : false;
|
||||
}
|
||||
public function fetch_all($cachenames) {
|
||||
|
||||
$data = array();
|
||||
$cachenames = is_array($cachenames) ? $cachenames : array($cachenames);
|
||||
if($this->_allowmem) {
|
||||
$data = memory('get', $cachenames);
|
||||
$newarray = $data !== false ? array_diff($cachenames, array_keys($data)) : $cachenames;
|
||||
if(empty($newarray)) {
|
||||
return $data;
|
||||
} else {
|
||||
$cachenames = $newarray;
|
||||
}
|
||||
}
|
||||
|
||||
if($this->_isfilecache) {
|
||||
$lostcaches = array();
|
||||
foreach($cachenames as $cachename) {
|
||||
if(!@include_once(DZZ_ROOT.'./data/cache/cache_'.$cachename.'.php')) {
|
||||
$lostcaches[] = $cachename;
|
||||
} elseif($this->_allowmem) {
|
||||
memory('set', $cachename, $data[$cachename]);
|
||||
}
|
||||
}
|
||||
if(!$lostcaches) {
|
||||
return $data;
|
||||
}
|
||||
$cachenames = $lostcaches;
|
||||
unset($lostcaches);
|
||||
}
|
||||
|
||||
$query = DB::query('SELECT * FROM '.DB::table($this->_table).' WHERE '.DB::field('cname', $cachenames));
|
||||
while($syscache = DB::fetch($query)) {
|
||||
$data[$syscache['cname']] = $syscache['ctype'] ? unserialize($syscache['data']) : $syscache['data'];
|
||||
$this->_allowmem && (memory('set', $syscache['cname'], $data[$syscache['cname']]));
|
||||
if($this->_isfilecache) {
|
||||
$cachedata = '$data[\''.$syscache['cname'].'\'] = '.var_export($data[$syscache['cname']], true).";\n\n";
|
||||
if(($fp = @fopen(DZZ_ROOT.'./data/cache/cache_'.$syscache['cname'].'.php', 'wb'))) {
|
||||
fwrite($fp, "<?php\n//Dzz! cache file, DO NOT modify me!\n//Identify: ".md5($syscache['cname'].$cachedata.getglobal('config/security/authkey'))."\n\n$cachedata?>");
|
||||
fclose($fp);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
foreach($cachenames as $name) {
|
||||
if($data[$name] === null) {
|
||||
$data[$name] = null;
|
||||
$this->_allowmem && (memory('set', $name, array()));
|
||||
}
|
||||
}
|
||||
|
||||
return $data;
|
||||
}
|
||||
|
||||
public function insert($cachename, $data) {
|
||||
parent::insert(array(
|
||||
'cname' => $cachename,
|
||||
'ctype' => is_array($data) ? 1 : 0,
|
||||
'dateline' => TIMESTAMP,
|
||||
'data' => is_array($data) ? serialize($data) : $data,
|
||||
), false, true);
|
||||
|
||||
if($this->_allowmem && memory('get', $cachename) !== false) {
|
||||
memory('set', $cachename, $data);
|
||||
}
|
||||
$this->_isfilecache && @unlink(DZZ_ROOT.'./data/cache/cache_'.$cachename.'.php');
|
||||
}
|
||||
|
||||
public function update($cachename, $data,$unbuffered = false, $low_priority = false) {
|
||||
$this->insert($cachename, $data);
|
||||
}
|
||||
|
||||
public function delete($cachenames,$unbuffered = false) {
|
||||
parent::delete($cachenames);
|
||||
if($this->_allowmem || $this->_isfilecache) {
|
||||
foreach((array)$cachenames as $cachename) {
|
||||
$this->_allowmem && memory('rm', $cachename);
|
||||
$this->_isfilecache && @unlink(DZZ_ROOT.'./data/cache/cache_'.$cachename.'.php');
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
?>
|
||||
|
||||
Reference in New Issue
Block a user