Objekte serialisieren - wann?

Einklappen
X
 
  • Filter
  • Zeit
  • Anzeigen
Alles löschen
neue Beiträge

  • Objekte serialisieren - wann?

    Hallo!
    Ich habe mir gerad das Thema "Objekte serialisieren - Objekte in Sessions" ()link
    durchgelesen, doch irgendwie verstehe ich den Sinn nicht ganz. Besser gesagt, wann brauche ich das serialisieren/desierialisieren von Objekten? Mir fällt irgendwie keine sinnvolle Anwendung dafür ein.

    Außerdem muss ich dann ja die Klasse in jede Seite includieren, so lange, bis ich die Session nicht mehr brauche. Wenn ich die Klasse z.B: auf 2 Seiten meiner Session benötige, dann muss ich sie auch in die anderen 20 Seiten meiner Session einbinden, da sie ansonsten ihre "Zuweisung" verliert.
    Zuletzt geändert von Kisi; 06.09.2006, 21:17.

  • #2
    um zum beispiel einen (objekt-)"zustand" in der datenbank zu hinterlegen
    mfg

    Kommentar


    • #3
      Re: Objekte serialisieren - wann?

      Um die Eigenschaften eines Objektes irgendwo abzuspeichern ...?
      I don't believe in rebirth. Actually, I never did in my whole lives.

      Kommentar


      • #4
        Re: Objekte serialisieren - wann?

        Original geschrieben von Kisi
        Wenn ich die Klasse z.B: auf 2 Seiten meiner Session benötige, dann muss ich sie auch in die anderen 20 Seiten meiner Session einbinden, da sie ansonsten ihre "Zuweisung" verliert.
        wer sagt dass du dass du bei anderen 20 Seiten die klasse einbinden muss?
        Nur wenn du ein Object instanzieren möchtest, erst dann brauchst du die Klasse.
        Ausserdem wenn du der serialisierte Object (der einfach ein String ist) nicht mehr brauchst, dann kannst du in auch aus session löschen.
        Slava
        bituniverse.com

        Kommentar


        • #5
          Naja, wenn ich z.B: folgendes habe, dann ich doch gleich $x in meine Datenbank speichern. Könnt ihr mir bitte ein konkretes Beispiel geben, dann wirds mir vielleich klar/er?
          PHP-Code:
          <?php
          class mathe
          {
             function 
          quadrat($zahl)
             {
                  return 
          $zahl *=$zahl;
             }
          }
          $ergebnis = new mathe();
          $x $ergebnis->quadrat(5);
          ?>

          Kommentar


          • #6
            Re: Re: Objekte serialisieren - wann?

            Original geschrieben von Slava
            wer sagt dass du dass du bei anderen 20 Seiten die klasse einbinden muss?
            Ok, das muss war übertrieben

            von php.net:
            Es wird ausdrücklich empfohlen, dass Sie die Klassendefinitionen der so registrierten Objekte in allen Ihren Seiten einbinden, auch wenn Sie diese Klassen eigentlich nicht auf allen Ihren Seiten benötigen.

            Kommentar


            • #7
              Original geschrieben von Kisi
              Naja, wenn ich z.B: folgendes habe, dann ich doch gleich $x in meine Datenbank speichern.
              Ja - weil du dir für sowas triviales auch gleich die Klasse hättest sparen können.

              Klassen nutzt man nicht zum Selbstzweck, sondern um komplexen Datenobjekten eine passende Struktur zu geben.
              I don't believe in rebirth. Actually, I never did in my whole lives.

              Kommentar


              • #8
                es lohnt sich einfach nicht diese Klasse zu serialisieren, da sie überhaupt keine Member hat.
                nur wenn du die initialisierte Membervariablen hast, erst dann können wir über serialisierung sprechen, da die classen methoden werden nicht mit abgespeichert.
                Slava
                bituniverse.com

                Kommentar


                • #9
                  Das war ja nur ein Beispiel! Is mir schon klar, dass ich dafür nicht extra eine Klasse machen soll

                  Kommentar


                  • #10
                    z.b.s
                    du hast ein Warenkorb und der Kunde kann die Ware dazu tun oder weg nehmen.
                    bis der Zeitpunkt, als der Kunde bezahlen musss, ist für dich Inhalt von dem Warenkorb nicht relevant und du willst dabei überflüssige Queris sparen.
                    PHP-Code:
                    #-Artickle
                    class Article{
                        var 
                    $id;
                        var 
                    $name;
                        var 
                    $preis;
                        function 
                    Article($id,$name,$preis){
                            
                    $this->id=$id;
                            
                    $this->name=$name;
                            
                    $this->preis=$preis;
                        }
                        function 
                    toString(){ return $this->id.";".$this->name.";".$this->preis."€";}
                    }
                    #-------------------------------

                    #--Warenkorb--
                    class Warenkorb{
                        var 
                    $liste;
                        var 
                    $anzahl;
                        function 
                    Warenkorb(){
                            
                    $this->liste=array();
                            
                    $this->anzahl=array();
                        }
                        function 
                    add($article){
                            
                    $this->liste[$article->id]=$article;
                            
                    $this->anzahl[$article->id]++;
                        }
                        function 
                    getById($id){ return $this->liste[$id];}
                        function 
                    removeById($id){
                            unset(
                    $this->liste[$id]);
                            
                    $this->anzahl[$i]--;
                        }
                        function 
                    getGesamtWert(){
                            
                    $wert;
                            foreach(
                    $this->liste as $list){
                                
                    $id=$list->id;
                                
                    $wert+=$this->anzahl[$id]*$list->preis;
                            }
                            return 
                    $wert;
                        }
                        function 
                    toString(){
                            
                    $str;
                            foreach (
                    $this->liste as $list){
                                
                    $str.=$list->toString()." ".$this->anzahl[$list->id]." stück<br>\n";
                            }
                            
                    $str.="Gesamtwert: ".$this->getGesamtWert();
                            return 
                    $str;
                        }

                    jetzt kannst du bis die richtige bestellung kommt sich nicht mehr um die zusätzlichen Queris kümmern und dem Kunde bequem der Gesamte Warenkorb wert und die liste von einzehlware Anzeigen
                    PHP-Code:
                    //Initialisierung
                    $_SESION['varenkorb']=new Warenkorb();//bei erstem mal aufrufen.
                    //und dann einfach mit bekannten methoden weiter arbeiten
                    $_SESION['varenkorb']->add(new Article(1,"Jacke",2.50));
                    $_SESION['varenkorb']->add(new Article(1,"Jacke",2.50));
                    $_SESION['varenkorb']->add(new Article(5,"Hose",22.50));
                    echo 
                    $_SESION['varenkorb']->getGesamtWert(); 
                    Slava
                    bituniverse.com

                    Kommentar

                    Lädt...
                    X