Christopher: Objektinstanz in Session-variable speichern

Hallo,

mir stellt sich die Frage nach dem rationalisierterten Lösungsweg zu folgender Überlegung:
Es wird eine Objektinstanz erzeugt, die (soweit absehbar) eine komplette Laufzeit erhalten bleiben soll. Soll ich die komplette Instanz in einer Session-variable ablegen oder ist es ratsamer per ID bei jedem Seitenaufruf neu eine Instanz über den Konstruktor zu erstellen?

Vielen Dank für die Auskunft,
Christopher

  1. echo $begrüßung;

    mir stellt sich die Frage nach dem rationalisierterten Lösungsweg zu folgender Überlegung:
    Es wird eine Objektinstanz erzeugt, die (soweit absehbar) eine komplette Laufzeit erhalten bleiben soll. Soll ich die komplette Instanz in einer Session-variable ablegen oder ist es ratsamer per ID bei jedem Seitenaufruf neu eine Instanz über den Konstruktor zu erstellen?

    Das kommt auf den Aufwand an, den du im Konstruktor betreibst, z.B. ob du nur "einfache" Intialisierungsdinge darin erledigst. Eine Datenbankverbindung beispielsweise überlebt in der Session nicht. Die müsste sowieso neu aufgebaut werden.

    echo "$verabschiedung $name";

    1. Das kommt auf den Aufwand an, den du im Konstruktor betreibst

      Die Instanz besitzt ca. 8 Eigenschaften, welche bloß mit einer ID aus der Datenbank gelesen werden. Sessions benutze ich übrigens ohnehin.

      1. echo $begrüßung;

        Die Instanz besitzt ca. 8 Eigenschaften, welche bloß mit einer ID aus der Datenbank gelesen werden. Sessions benutze ich übrigens ohnehin.

        Es dürfte billiger sein, diese Instanz aus der Session wiederherzustellen. Vorausgesetzt der Inhalt des Datensatzes ändert sich nicht zwischenzeitlich nicht oder dass so eine Änderung nicht beachtet werden soll.

        echo "$verabschiedung $name";

  2. was ist die komplette laufzeit ?

    wenn der anwendungsfall mehrere benutzeraktionen erfordert, muß natürlich auf dem vorhergehenden schritt weiter gemacht werden. daher muß der vorhergehende zustand erhalten bleiben, oder neu hergestellt werden (stichwort stateful).

    eine neue instanz sieht ja immer gleich aus, wenn diese nicht unterschiedlich konstruiert wird. wenn bei der instanzierung nicht ein riesen programm abläuft (warum auch) ergibt sich kein sinn diese objektinstanz zu retten, sondern stateless zu arbeiten. dies dürfte nicht nur schneller sein, sondern auch ressourcen sparen.