refactoring and bug fixes.
This commit is contained in:
@@ -42,9 +42,10 @@ class APC implements Driver {
|
||||
*
|
||||
* @param array $session
|
||||
* @param array $config
|
||||
* @param bool $exists
|
||||
* @return void
|
||||
*/
|
||||
public function save($session, $config)
|
||||
public function save($session, $config, $exists)
|
||||
{
|
||||
$this->apc->put($session['id'], $session, $config['lifetime']);
|
||||
}
|
||||
|
||||
@@ -56,9 +56,10 @@ class Cookie implements Driver {
|
||||
*
|
||||
* @param array $session
|
||||
* @param array $config
|
||||
* @param bool $exists
|
||||
* @return void
|
||||
*/
|
||||
public function save($session, $config)
|
||||
public function save($session, $config, $exists)
|
||||
{
|
||||
extract($config);
|
||||
|
||||
|
||||
@@ -50,17 +50,26 @@ class Database implements Driver, Sweeper {
|
||||
*
|
||||
* @param array $session
|
||||
* @param array $config
|
||||
* @param bool $exists
|
||||
* @return void
|
||||
*/
|
||||
public function save($session, $config)
|
||||
public function save($session, $config, $exists)
|
||||
{
|
||||
$this->delete($session['id']);
|
||||
|
||||
$this->table()->insert(array(
|
||||
'id' => $session['id'],
|
||||
'last_activity' => $session['last_activity'],
|
||||
'data' => serialize($session['data'])
|
||||
));
|
||||
if ($exists)
|
||||
{
|
||||
$this->table()->where('id', '=', $session['id'])->update(array(
|
||||
'last_activity' => $session['last_activity'],
|
||||
'data' => serialize($session['data']),
|
||||
));
|
||||
}
|
||||
else
|
||||
{
|
||||
$this->table()->insert(array(
|
||||
'id' => $session['id'],
|
||||
'last_activity' => $session['last_activity'],
|
||||
'data' => serialize($session['data'])
|
||||
));
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -17,9 +17,10 @@ interface Driver {
|
||||
*
|
||||
* @param array $session
|
||||
* @param array $config
|
||||
* @param bool $exists
|
||||
* @return void
|
||||
*/
|
||||
public function save($session, $config);
|
||||
public function save($session, $config, $exists);
|
||||
|
||||
/**
|
||||
* Delete a session from storage by a given ID.
|
||||
|
||||
@@ -40,9 +40,10 @@ class File implements Driver, Sweeper {
|
||||
*
|
||||
* @param array $session
|
||||
* @param array $config
|
||||
* @param bool $exists
|
||||
* @return void
|
||||
*/
|
||||
public function save($session, $config)
|
||||
public function save($session, $config, $exists)
|
||||
{
|
||||
F::put($this->path.$session['id'], serialize($session), LOCK_EX);
|
||||
}
|
||||
|
||||
@@ -38,9 +38,10 @@ class Memcached implements Driver {
|
||||
*
|
||||
* @param array $session
|
||||
* @param array $config
|
||||
* @param bool $exists
|
||||
* @return void
|
||||
*/
|
||||
public function save($session, $config)
|
||||
public function save($session, $config, $exists)
|
||||
{
|
||||
$this->memcached->put($session['id'], $session, $config['lifetime']);
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user