Philipp Hasenfratz: Überschneidungen zw. Auth, User und Request-Daten

Beitrag lesen

Halihallo Andreas

[...]
Das war wohl etwas sehr weit gedacht. Ich würde dennoch ein Caching-Konzept empfehlen,
welches die Daten an einem zentralen Ort speichert. Du hast ja in einem anderen Posting
gesagt, dass du die Klasse User auch als Datencontainer verwendest, wenn also eine
Instanz von User alle Daten desselben enthält, warum benutzt du diese nicht um sie in
Auth zu verwenden? - Die Klasse Auth wäre demnach eine "Auslagerung" spezieller Methoden,
welche auf Daten der User-Instanz zugreift. Konkret würde ich mir das so vorstellen:

$user = new User( id => 'testuser' );   # instanziieren
$user->_load;                           # daten einlesen (ggf. implizit durch eine
                                        # getData-Methode, die merkt, dass noch keine
                                        # gelesen wurden)
$auth = new Auth( pwd => 'testpass' );  # auth-objekt mit eingegebenem Passwort inst.
$auth->user_authentication( $user )     # überprüft, ob das Passwort mit den Daten
                                        # aus $user authentisch sind.
if ($auth->isAuthenticated) {           # user eingeloggt, falls authentisch.
   $user->setStatus( MSG_SUCCESSFUL_LOGGED_IN );
}

Du bräuchtest demnach nur eine Datenbank-Abfrage, nämlich etwas in der Art

SELECT * FROM webapp_user WHERE user_login="'.$user->id.'"

diesen müsstest du sowieso ausführen, wenn du auf Daten des Users zugreifen wolltest.

Viele Grüsse und HTH

Philipp