a memcached_dataobject class for saving sessions
This commit is contained in:
parent
48d671ac39
commit
0ca22cf6e2
|
@ -39,4 +39,71 @@ class Session extends Memcached_DataObject
|
||||||
|
|
||||||
/* the code above is auto generated do not remove the tag below */
|
/* the code above is auto generated do not remove the tag below */
|
||||||
###END_AUTOCODE
|
###END_AUTOCODE
|
||||||
|
|
||||||
|
static function open($save_path, $session_name)
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function close()
|
||||||
|
{
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
static function read($id)
|
||||||
|
{
|
||||||
|
$session = Session::staticGet('id', $id);
|
||||||
|
|
||||||
|
if (empty($session)) {
|
||||||
|
return '';
|
||||||
|
} else {
|
||||||
|
return (string)$session->session_data;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static function write($id, $session_data)
|
||||||
|
{
|
||||||
|
$session = Session::staticGet('id', $id);
|
||||||
|
|
||||||
|
if (empty($session)) {
|
||||||
|
$session = new Session();
|
||||||
|
|
||||||
|
$session->id = $id;
|
||||||
|
$session->session_data = $session_data;
|
||||||
|
$session->created = common_sql_now();
|
||||||
|
|
||||||
|
return $session->insert();
|
||||||
|
} else {
|
||||||
|
$session->session_data = $session_data;
|
||||||
|
|
||||||
|
return $session->update();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static function destroy($id)
|
||||||
|
{
|
||||||
|
$session = Session::staticGet('id', $id);
|
||||||
|
|
||||||
|
if (!empty($session)) {
|
||||||
|
return $session->delete();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
static function gc($maxlifetime)
|
||||||
|
{
|
||||||
|
$epoch = time() - $maxlifetime;
|
||||||
|
|
||||||
|
$qry = 'DELETE FROM session ' .
|
||||||
|
'WHERE modified < "'.$epoch.'"';
|
||||||
|
|
||||||
|
$session = new Session();
|
||||||
|
|
||||||
|
$session->query($qry);
|
||||||
|
}
|
||||||
|
|
||||||
|
static function setSaveHandler()
|
||||||
|
{
|
||||||
|
session_set_save_handler('Session::open', 'Session::close', 'Session::read',
|
||||||
|
'Session::write', 'Session::destroy', 'Session::gc');
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -828,7 +828,12 @@ function common_date_iso8601($dt)
|
||||||
|
|
||||||
function common_sql_now()
|
function common_sql_now()
|
||||||
{
|
{
|
||||||
return strftime('%Y-%m-%d %H:%M:%S', time());
|
return common_sql_date(time());
|
||||||
|
}
|
||||||
|
|
||||||
|
function common_sql_date($datetime)
|
||||||
|
{
|
||||||
|
return strftime('%Y-%m-%d %H:%M:%S', $datetime);
|
||||||
}
|
}
|
||||||
|
|
||||||
function common_redirect($url, $code=307)
|
function common_redirect($url, $code=307)
|
||||||
|
|
Loading…
Reference in New Issue
Block a user