$_SESSION / OOP?

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • $_SESSION / OOP?

    Hallo,

    habe eine Frage, ich betreibe eine kleine Community welche ich neu machen möchte. Die Login-Daten behalte ich mit der '$_SESSION-Funktion'. Jedoch habe ich mir nun den Code eines Forums angeschaut und hier wird das ganze ohne $_SESSIONs gemacht sonder eben objekt orientiert. Ich kann mir nun aber nicht ganz vorstellen wie das funktionieren soll. Also wollte ich hier eben fragen ob mir da jemand helfen kann. Brauche keinen fertigen Code oder so, sondern praktisch nur eine kleine Hilfe wie das ganze funktionieren soll.

    Danke im Voraus,
    Wolfgang
  • So wie ich das verstanden habe kann es aber auch so gelöst sein:

    Quellcode

    1. <?php
    2. class Sessionverwaltung{
    3. function Loginuser($bla, $blubb)
    4. {
    5. // Wenn Bla gleich dem Datenbank Bla und BLubb gleich dem Datenbankblubb dann:
    6. $_SESSION['loggedin'] = 1;
    7. // etc...
    8. }
    9. }
    10. $User = new Sessionverwaltung;
    11. $User->Login("Ich", "Passwort");
    12. ?>
    Alles anzeigen


    und damit hasste auch dann im End-Code keine $_SESSION befehle mehr, weil die ja alle von der Klasse gesetzt werden...
    Ich persönlich finde es besser solche Klassen in einem __destruct() in eine Session zu serialisieren und dann beim nächsten mal auszupacken... hat einige Vor- und Nachteile


    MFG
    Blackskyliner
  • "Blackskyliner" schrieb:



    und damit hasste auch dann im End-Code keine $_SESSION befehle mehr, weil die ja alle von der Klasse gesetzt werden...
    Ich persönlich finde es besser solche Klassen in einem __destruct() in eine Session zu serialisieren und dann beim nächsten mal auszupacken... hat einige Vor- und Nachteile



    Meinst du nicht __construct?
    Erst wenn der letzte FTP Server kostenpflichtig, der letzte GNU-Sourcecode verkauft, der letzte Algorithmus patentiert, der letzte Netzknoten kommerzialisiert, die letzte Newsgroup moderiert wird, werdet Ihr merken, dass man mit Geld allein nicht programmieren kann.
  • Nein, schon korrekt. Die Serialisierung in eine Session kann man beim Zerstören des normalen Objektes machen. Beim __construct lädt man die Session (falls vorhanden) dann einfach.

    Wie Blackskyliner es bereits gesagt hat, hat alles seine Vor- und Nachteile.
    Wenn du z.B. die ganze Klasse aus der Session lädst, dabei aber noch auf andere SESSION Variablen zugreifen willst, hast du erstmal schlechte Karten, weil __wakeup noch vor den SESSION Variablen ausgeführt wird.
  • Ich mach es so, dass $_SESSION['user_id'] zum Beispiel immer die user_id überliefert und dann stets eine neue Klasse $user = new User zu Beginn des Scriptes aufgerufen wird, in der beim Aufruf mit Hilfe der ID (falls vorhanden) alle Daten ausgelesen werden. Wenn man dann Daten braucht, bekommt man sie z.B. mit $user->get('parameter'), da sie dann in der Klasse gespeichert sind..


    lG