refactoring and bug fixes.

This commit is contained in:
Taylor Otwell
2011-09-29 21:22:48 -05:00
parent 2eeb636198
commit 14186a00e0
22 changed files with 192 additions and 132 deletions

View File

@@ -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']);
}

View File

@@ -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);

View File

@@ -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'])
));
}
}
/**

View File

@@ -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.

View File

@@ -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);
}

View File

@@ -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']);
}