From baf990b76284b5ab5406f7c619a623f23f4ca13a Mon Sep 17 00:00:00 2001 From: Fabien Potencier Date: Sat, 14 Jul 2012 15:04:55 +0200 Subject: [PATCH] [HttpKernel] fixed the request data collector which always started the session (closes #4915) --- .../DataCollector/RequestDataCollector.php | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/src/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php b/src/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php index f7cf88eee3..407aca3968 100644 --- a/src/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php +++ b/src/Symfony/Component/HttpKernel/DataCollector/RequestDataCollector.php @@ -60,11 +60,17 @@ class RequestDataCollector extends DataCollector } $sessionMetadata = array(); - + $sessionAttributes = array(); + $flashes = array(); if ($request->hasSession()) { - $sessionMetadata['Created'] = date(DATE_RFC822, $request->getSession()->getMetadataBag()->getCreated()); - $sessionMetadata['Last used'] = date(DATE_RFC822, $request->getSession()->getMetadataBag()->getLastUsed()); - $sessionMetadata['Lifetime'] = $request->getSession()->getMetadataBag()->getLifetime(); + $session = $request->getSession(); + if ($session->isStarted()) { + $sessionMetadata['Created'] = date(DATE_RFC822, $session->getMetadataBag()->getCreated()); + $sessionMetadata['Last used'] = date(DATE_RFC822, $session->getMetadataBag()->getLastUsed()); + $sessionMetadata['Lifetime'] = $session->getMetadataBag()->getLifetime(); + $sessionAttributes = $session->all(); + $flashes = $session->getFlashBag()->peekAll(); + } } $this->data = array( @@ -80,8 +86,8 @@ class RequestDataCollector extends DataCollector 'request_attributes' => $attributes, 'response_headers' => $responseHeaders, 'session_metadata' => $sessionMetadata, - 'session_attributes' => $request->hasSession() ? $request->getSession()->all() : array(), - 'flashes' => $request->hasSession() ? $request->getSession()->getFlashBag()->peekAll() : array(), + 'session_attributes' => $sessionAttributes, + 'flashes' => $flashes, 'path_info' => $request->getPathInfo(), ); }