Ver Fonte

[HttpFoundation] Do not save session in Session::__destroy() when saved already

Martin Mayer há 14 anos atrás
pai
commit
34a1b53168
1 ficheiros alterados com 4 adições e 1 exclusões
  1. 4 1
      src/Symfony/Component/HttpFoundation/Session.php

+ 4 - 1
src/Symfony/Component/HttpFoundation/Session.php

@@ -29,6 +29,7 @@ class Session implements \Serializable
     protected $oldFlashes;
     protected $locale;
     protected $defaultLocale;
+    protected $saved;
 
     /**
      * Constructor.
@@ -46,6 +47,7 @@ class Session implements \Serializable
         $this->attributes = array();
         $this->setPhpDefaultLocale($this->defaultLocale);
         $this->started = false;
+        $this->saved = false;
     }
 
     /**
@@ -356,11 +358,12 @@ class Session implements \Serializable
             'flashes'    => $this->flashes,
             'locale'     => $this->locale,
         ));
+        $this->saved = true;
     }
 
     public function __destruct()
     {
-        if (true === $this->started) {
+        if (true === $this->started && !$this->saved) {
             $this->save();
         }
     }