Quellcode durchsuchen

Simplify and fix the session listener

ornicar vor 14 Jahren
Ursprung
Commit
69393b0762

+ 6 - 33
src/Symfony/Bundle/FrameworkBundle/HttpFoundation/SessionListener.php

@@ -25,27 +25,6 @@ use Symfony\Component\HttpKernel\HttpKernelInterface;
  */
 class SessionListener
 {
-    /**
-     * @var Request
-     */
-    private $request;
-
-    /**
-     * @var Boolean
-     */
-    private $master = false;
-
-    /**
-     * Assigns request and its type on 'core.request' event
-     *
-     * @param EventInterface $event
-     */
-    public function handle(EventInterface $event)
-    {
-        $this->request = $event->get('request');
-        $this->master = HttpKernelInterface::MASTER_REQUEST === $event->get('request_type');
-    }
-
     /**
      * Checks if session was initialized and saves if current request is master
      * Runs on 'core.response' in test environment
@@ -57,20 +36,14 @@ class SessionListener
      */
     public function filter(EventInterface $event, Response $response)
     {
-        if (isset($this->request) && $this->master && null !== $this->request->getSession()) {
-            $this->request->getSession()->save();
+        if ($request = $event->get('request')) {
+            if (HttpKernelInterface::MASTER_REQUEST === $event->get('request_type')) {
+                if ($session = $request->getSession()) {
+                    $session->save();
+                }
+            }
         }
 
         return $response;
     }
-
-    /**
-     * Returns true is current request is master request
-     *
-     * @return Boolean
-     */
-    public function isMaster()
-    {
-        return $this->master;
-    }
 }

+ 1 - 2
src/Symfony/Bundle/FrameworkBundle/Resources/config/test.xml

@@ -23,9 +23,8 @@
         <service id="test.client.history" class="%test.client.history.class%" scope="prototype" />
 
         <service id="test.client.cookiejar" class="%test.client.cookiejar.class%" scope="prototype" />
-        
+
         <service id="test.session.listener" class="%test.session.listener.class%">
-            <tag name="kernel.listener" event="core.request" method="handle" />
             <tag name="kernel.listener" event="core.response" method="filter" />
         </service>
     </services>