Session

Aus DavaHome.NET Wiki

Wechseln zu: Navigation, Suche

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



Persönliche Werkzeuge
DavaHome