aus dem Kochbuch Symfony 2: Understanding serialize and how a User is Saved in the Session:Warum lädt Symfony den Benutzer bei jeder Anforderung von der Datenbank neu?
Sobald der Benutzer angemeldet ist, wird das gesamte Benutzerobjekt in die Sitzung serialisiert. Bei der nächsten Anforderung wird das Benutzerobjekt deserialisiert. Anschließend wird der Wert der ID-Eigenschaft verwendet, um erneut nach einem neuen Benutzerobjekt aus der Datenbank abzufragen.
und
... in der Praxis bedeutet dies, dass das Benutzerobjekt aus der Datenbank auf jeder Anfrage mit der ID aus dem serialisierten Objekt neu geladen wird.
Warum muss Symfony das Benutzerobjekt bei jeder Anforderung aus der Datenbank holen?
Unter welchen Umständen würde das serialisierte Benutzerobjekt, das in den Sitzungsdaten gespeichert ist, nicht mit dem Benutzerobjekt übereinstimmen, das aus der Datenbank abgerufen wurde? Sicherlich weiß Symfony, wann sich das Benutzerobjekt ändert, und kann einfach die Sitzungsdaten aktualisieren, wenn dies geschieht.
Ich kann mir vorstellen, dass es einen guten Grund dafür gibt, da es unnötig wäre, die Datenbank bei jeder Anfrage unnötig abzufragen.
Ich würde hinzufügen, wenn der Benutzer bei jeder Verbindung abgerufen wird, und es gibt einen guten Grund dafür, warum ist es in Sitzung serialisiert? – haltabush
@haltabush Ich habe eine Erklärung dazu zu meiner Antwort hinzugefügt. – IMSoP
Auf ihrer Dokumentationsseite vermerkt "Dies stellt sicher, dass alle Daten des Benutzers frisch sind." –