[HttpFoundation] fixed Session serialization
This commit is contained in:
parent
57db35b93b
commit
92f4b92cbb
@ -18,7 +18,7 @@ use Symfony\Component\HttpFoundation\SessionStorage\SessionStorageInterface;
|
|||||||
*
|
*
|
||||||
* @author Fabien Potencier <fabien.potencier@symfony-project.com>
|
* @author Fabien Potencier <fabien.potencier@symfony-project.com>
|
||||||
*/
|
*/
|
||||||
class Session
|
class Session implements \Serializable
|
||||||
{
|
{
|
||||||
protected $storage;
|
protected $storage;
|
||||||
protected $locale;
|
protected $locale;
|
||||||
@ -232,12 +232,28 @@ class Session
|
|||||||
return array_key_exists($name, $this->attributes['_flash']);
|
return array_key_exists($name, $this->attributes['_flash']);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function __destruct()
|
public function save()
|
||||||
{
|
{
|
||||||
if (true === $this->started) {
|
if (true === $this->started) {
|
||||||
$this->attributes['_flash'] = array_diff_key($this->attributes['_flash'], $this->oldFlashes);
|
$this->attributes['_flash'] = array_diff_key($this->attributes['_flash'], $this->oldFlashes);
|
||||||
|
|
||||||
$this->storage->write('_symfony2', $this->attributes);
|
$this->storage->write('_symfony2', $this->attributes);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public function __destruct()
|
||||||
|
{
|
||||||
|
$this->save();
|
||||||
|
}
|
||||||
|
|
||||||
|
public function serialize()
|
||||||
|
{
|
||||||
|
return serialize(array($this->storage, $this->options));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function unserialize($serialized)
|
||||||
|
{
|
||||||
|
list($this->storage, $this->options) = unserialize($serialized);
|
||||||
|
$this->attributes = array();
|
||||||
|
$this->started = false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user