[HttpFoundation] added a way to clear the session attributes

This commit is contained in:
Fabien Potencier 2010-10-19 13:09:48 +02:00
parent 94347f73c5
commit 0fc6b15c17
2 changed files with 20 additions and 2 deletions

View File

@ -153,13 +153,30 @@ class Session implements \Serializable
if (false === $this->started) {
$this->start();
}
if (array_key_exists($name, $this->attributes)) {
unset($this->attributes[$name]);
}
}
/**
* Clears all attributes.
*/
public function clear()
{
if (false === $this->started) {
$this->start();
}
$this->attributes = array();
}
/**
* Invalidates the current session.
*/
public function invalidate()
{
$this->clear();
$this->storage->regenerate();
}
@ -240,7 +257,9 @@ class Session implements \Serializable
public function save()
{
if (true === $this->started) {
$this->attributes['_flash'] = array_diff_key($this->attributes['_flash'], $this->oldFlashes);
if (isset($this->attributes['_flash'])) {
$this->attributes['_flash'] = array_diff_key($this->attributes['_flash'], $this->oldFlashes);
}
$this->storage->write('_symfony2', $this->attributes);
}
}

View File

@ -149,7 +149,6 @@ class NativeSessionStorage implements SessionStorageInterface
return;
}
// regenerate a new session id once per object
session_regenerate_id($destroy);
self::$sessionIdRegenerated = true;