pl: Statik und Dynamik

Beitrag lesen

Nochwas,

Klassen und Klassenvariablen sind statische Gebilde, Instanzen hingegen nicht. Jetzt nehmen wir mal an, daß eine Klassenvariable bei jeder Instanzerstellung um 1 erhöht wird. Genau das zeigt ja das statische Verhalten: Jede neue Instanz findet diese Variable so vor wie sie von der letzten Instanz verlassen wurde.

Ganz genauso wie die diese Zählvariable verhält es sich auch mit anderen Variablen die klassenweit deklariert wurden, also bspw. auch prepared Statements, Templates und auch die DB Verbindung selbst.

So könnten in mod_php bereits beim Serverstart sämtliche Templates in den Hauptspeicher geladen werden was eine Klasse Templates tun könnte wenn sie beim Serverstart kompiliert wird. So könnte bei einem Request auf /foo.html die dazugehörige Templatedatei ohne Umschweife aus dem Hauptspeicher geladen werden was viel schneller geht als aus dem Dateisystem.

Bei mod_php muss Du jedoch aufpassen daß persönliche Daten ($_SESSSION) nicht im Speicher hängenbleiben. Wie machen wir das? Richtig, solche Daten gehören nicht in Klassen organisiert sondern an die Instanz gebunden! Denn jede Instanz wird beim destroy aus dem Hauptspeicher entfernt. Einfaches Beispiel: Das Template für den Warenkorb kann jeder sehen, aber nicht das was drin ist.

MfG