Genau so ist es: Im Objekt $time befindet sich coreTime, die Zeit als UTC, wie du es sagtest. Diese Zeit $time->coreTime benötigt das Objekt $session um alte Sitzungen zu löschen und eine Session anzulegen, deren Verfallsdauer etc festzulegen. Dann werden Info's zum User und der aktuellen Sitzung geladen: lokale Zeitzone und diese benötigt $time->configurate um Zeitverschiebung zu ermitteln.
Zu Löschen verfallener Sessions bietet sich der Destruktor an.
Es geht mir jetzt darum eine einheitliche Methode zu finden, Daten eines Objektes in ein anderes Objekt zu inkludieren. Entweder komplette Verbindung mit Instanzen also $time als Instanz von $session: $session->time oder komplette Trennung der Klassen und inkludieren aller benötigten Abhängigkeiten in Funktionen, in denen sie gebraucht werden.
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).
Sessions, zu denen kein Login vorliegt, müssen überhaupt nicht gespeichert werden, wozu auch.
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.
Hotti
Wenn der Kommentar nicht zum Code passt, kann auch der Code falsch sein.