AvocadoAmber/AvocadoEdition_Light/lib/Cache/obj.class.php
2024-10-05 05:50:09 +09:00

104 lines
2 KiB
PHP

<?php
if (!defined('_GNUBOARD_'))
exit;
class G5_object_cache
{
public $writes = array();
public $contents = array();
public $etcs = array();
function get($type, $key, $group = 'default')
{
switch ($type) {
case 'bbs':
$datas = $this->writes;
break;
case 'content':
$datas = $this->contents;
break;
default:
$datas = $this->etcs;
break;
}
if ($this->exists($type, $key, $group)) {
if (is_object($datas[$group][$key]))
return clone $datas[$group][$key];
else
return $datas[$group][$key];
}
return false;
}
function exists($type, $key, $group = 'default')
{
$return_data = '';
switch ($type) {
case 'bbs':
$datas = $this->writes;
break;
case 'content':
$datas = $this->contents;
break;
default:
$datas = $this->etcs;
break;
}
return isset($datas[$group]) && (isset($datas[$group][$key]) || array_key_exists($key, $datas[$group]));
}
function set($type, $key, $data = array(), $group = 'default')
{
if (is_object($data))
$data = clone $data;
switch ($type) {
case 'bbs':
$this->writes[$group][$key] = $data;
break;
case 'content':
$this->contents[$group][$key] = $data;
break;
default:
$this->etcs[$group][$key] = $data;
break;
}
}
/**
* cache 데이터 제거
* @param string $type
* @param string $key
* @param string $group
* @return bool
*/
function delete($type, $key, $group = 'default')
{
if (!$this->exists($type, $key, $group)) {
return false;
}
switch ($type) {
case 'bbs':
$datas = &$this->writes;
break;
case 'content':
$datas = &$this->contents;
break;
default:
$datas = &$this->etcs;
break;
}
unset($datas[$group][$key]);
return true;
}
} //end Class;