Zu Löschen verfallener Sessions bietet sich der Destruktor an.
Ich meine damit nicht die Session als Objekt/Klasse an sich, sondern alte Sitzungsdaten innerhalb der DB, die älter als x Tage sind.
Frage: Warum jede Session speichern? Es genügt vollauf, die erfolgreichen Logins zu speichern, über die Instanz einer unabhängigen Login-Class, dessen Destruktor die Login-Table selbstständig aufräumt (zeitlich verfallene Logins löschen).
Per Rechte-Klasse erlaube ich Gästen an Umfragen, Themenbewertungen in bestimmten Foren teilzunehmen. Das sollte sich natürlich nicht wiederholen. Außer wenn er sich irgendwie ne neue Session-ID besorgt hat. ;-)
Nichts spricht jedoch dagegen, eine Instanz der Login-Class an das 'main-Object' zu binden, also an das Objekt, über welches die gesamte Anwendung controlliert wird.
Das Login-System ist bereits in der Klasse Session direkt mitinbegriffen.