归档
This commit is contained in:
47
includes/lib/Cache.php
Normal file
47
includes/lib/Cache.php
Normal file
@@ -0,0 +1,47 @@
|
||||
<?php
|
||||
namespace lib;
|
||||
/**
|
||||
* 缓存信息(注释待完善)
|
||||
*/
|
||||
class Cache {
|
||||
public function get($key) {
|
||||
global $_CACHE;
|
||||
return $_CACHE[$key];
|
||||
}
|
||||
public function read($key = 'config') {
|
||||
global $DB;
|
||||
$value = $DB->getColumn("SELECT v FROM pre_cache WHERE k=:key LIMIT 1", [':key'=>$key]);
|
||||
return $value;
|
||||
}
|
||||
public function save($key ,$value, $expire=0) {
|
||||
if (is_array($value)) $value = serialize($value);
|
||||
global $DB;
|
||||
return $DB->exec("REPLACE INTO pre_cache VALUES (:key, :value, :expire)", [':key'=>$key, ':value'=>$value, ':expire'=>$expire]);
|
||||
}
|
||||
public function pre_fetch(){
|
||||
global $_CACHE;
|
||||
$_CACHE=array();
|
||||
$cache = $this->read('config');
|
||||
$_CACHE = @unserialize($cache);
|
||||
if(empty($_CACHE['version']))$_CACHE = $this->update();
|
||||
return $_CACHE;
|
||||
}
|
||||
public function update() {
|
||||
global $DB;
|
||||
$cache = array();
|
||||
$result = $DB->getAll("SELECT * FROM pre_config");
|
||||
foreach($result as $row){
|
||||
$cache[ $row['k'] ] = $row['v'];
|
||||
}
|
||||
$this->save('config', $cache);
|
||||
return $cache;
|
||||
}
|
||||
public function clear($key = 'config') {
|
||||
global $DB;
|
||||
return $DB->exec("UPDATE pre_cache SET v='' WHERE k=:key", [':key'=>$key]);
|
||||
}
|
||||
public function clean() {
|
||||
global $DB;
|
||||
return $DB->exec("DELETE FROM pre_cache WHERE expire>0 AND expire<'".time()."'");
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user