Mógłby m ktoś wytłumaczyć na jakiej zasadzie działa sesja w Symfony2? Kożystam z PDOSessionStorage i zastanawia mnie kiedy ( i czy w ogóle) cała zawartość $_SESSION jest zapisywana do bazy. Z tego co zauważyłem to tak, ale kiedy? Podczas kończenia skryptu? Podczas destrukcji obiektu sesji?

Zastanawia mnie też, po co w klasie NativeSessionStorage, mimo używania PDOSessionStorage, nadal można pobierać dane z sesii zapisywanej na serwerze. I nie pobierane są dane z bazy tylko z serwera. TO po co w takim razie "nam" PDOSessionStorage? Kopia zapasowa? Poza tym, używając obu klas, pobieram sesję z bazy, gdzie ID sesii, równa się tej z NativeSessionStorage::getId(), no i okazuje się, że mam takie cosie:
Kod
_symfony2|a:3:{s:10:"attributes";a:0:{}s:7:"flashes";a:0:{}s:6:"locale";s:2:"en";}_login|a:2:{s:7:"user_id";i:1;s:9:"logged_in";b:1;}

Ja rozumiem, że trzeba jakoś tablice trzymać w bazie więc się je serializuje, ale jak ro teraz dać spowrotem do stanu używalności? Wiem, że są tutaj dwie tablice ale dlaczego akurat tak to jest ułożone?
  1. '_symfony2' =>
  2. 'attributes' =>
  3. 'flashes' =>
  4. 'locale' => string 'en' (length=2)
  5. '_login' =>
  6. 'user_id' => int 1
  7. 'logged_in' => boolean true

No i z powrotem to samo pytanie. Po co PDOSessionStorage, po co zapisujemy dane w bazie, jak i tak pobierając dane sesyjne pobieramy je ze zmiennej superglobalnej $_SESSION?