Session
Aus DavaHome.NET Wiki
Die Session-Klasse ist das Initiatorelement des PHP-Porting-Projects und implementiert das grobe $_SESSION System aus PHP. Genau wie die DavaHome Klasse Functions ist Session statisch und befindet sich im PHP Namespace. Session arbeitet, anders als sein PHP Bruder $_SESSION, mit Methoden statt mit direktem Idices. Das soll unter anderem den Grundgedanken der Objektorientierten Programmierung wahren und zusätzlich die Sicherheit gewähren. Da die Session Klasse sich anders als $_SESSION nicht mit foreach auslesen lässt bleiben sämtliche Schlüssel geheim. Wer die Daten eines Session-Elements auslesen lassen will kann dies nur indem er den Schlüssel kennt, mit dem die gewünschten Daten assoziiert sind. TL;DR: Ohne Schlüssel, keine Daten!
Inhaltsverzeichnis |
Zusätzliche Anmerkungen
Session arbeitet mit einem Grundgedanken der Objektorientierten Programmierung in C#, dem Boxing. Session arbeitet ausschließlich mit dem Datentyp object, ob bei Schlüsseln, Daten oder Rückgabewerten. Um mit Session effektiv arbeiten zu können sind Kenntnisse im Boxing und Unboxing empfohlen.
Beispiel zum Boxing/Unboxing mit Session:
Session.addObject("Key", "Data"); // Entspricht: $_SESSION["Key"] = "Data";
List<string> Collection = new List<string>();
Collection.Add("Hier speichern wir Informationen");
Session.addObject("list", Collection); // Dank Boxing ist das Problemlos möglich
List<string> Edit = (List<string>)Session.getObject("list"); // Unboxing mithilfe von Type-Casting
Edit[0]; // Enthält: 'Hier speichern wir Informationen'
Edit.Add("Wir wollen noch etwas speichern!"); // Wir speichern noch mehr...
Session.editObject("list", Edit); // Wir ersetzen das alte mit dem neuen
List<string> Test = (List<string>)Session.getObject("list"); // Ein letztes mal Unboxing
Test[0]; // Enthält: 'Hier speichern wir Informationen'
Test[1]; // Enthält: 'Wir wollen noch etwas speichern!'
Session.getObject("Key").ToString(); // Enthält: 'Data'
Wenn man nur Informationen auslesen möchte funktioniert auch folgender Zugriff:
( (List<string>) Session.getObject("list") )[0]
Elemente
Auf folgende Elemente (Eigenschaften, Methoden) kann Zugegriffen werden (Methoden werden weiter unten genauer erleutert):
bool addObject ( object Key, object Data) bool editObject ( object Key, object Data) object getObject ( object Key) /* Anzahl der gespeicherten Elemente */ int Count void registerObjects ( params object[] Key ) bool removeObject ( object Key )
Methoden
addObject
Beschreibung folgt
editObject
Beschreibung folgt
getObject
Beschreibung folgt
registerObjects
Beschreibung folgt
removeObject
Beschreibung folgt
Eigenschaften
Count
Beschreibung folgt

