dev-blog

Wie man einen Zustand speichern kann

Den aktuellen Zustand einer Applikation abzulegen, ist ein durchaus schwieriges Unterfangen. Wenn die Applikation den Inhalt am Server rendert, muss der aktuelle Zustand am Server abgelegt werden.

Ein gutes Beispiel für die beschriebene Situation wäre, wenn sich der User auf einem Bloglisting auf Seite 2 befindet und einen Artikel kommentieren möchte. Nach dem Klick auf den “Kommentar hinzufügen”-Link, muss der Server überprüfen, ob der User eine gültige Session hat. Ist dies nicht der Fall, wird der User auf die Login-Seite weitergeleitet. Nach einem erfolgreichen Login erwartet der User, wieder im Bloglisting auf Seite 2 zu sein und ein Kommentarformular unterhalb des Artikels zu sehen.

Wie lösen wir das Problem?

Um Informationen über die aktuelle Seite und die gewünschte Aktion des Users abzuspeichern, haben wir ein Laravel Package erstellt. Dieses Projekt ist frei auf Github verfügbar.

Die Idee hinter dem Package ist es, eine einfache Möglichkeit zu haben, Informationen über/für einen User abzulegen und diese über einen eindeutigen Identifier später wieder abrufen zu können. Die aktuelle Version erlaubt es uns, die Daten in der Session des Users oder in einem Cache abzulegen. Werden die Daten im Cache abgelegt, sind diese natürlich nur bis zum Ablauf des Cacheeintrags abrufbar.

Informationen wie das Package installiert wird, was bei der Konfiguration zu beachten ist und wie das Package im Detail zu verwenden ist, findet man in der README im Github Repo.

Weiterentwicklung des Packages

Um die Möglichkeit zu schaffen, Informationen zu persistieren, werden wir noch einen DatabaseStore implementieren. Dadurch kann garantiert werden, dass die Zustandsinformationen auch nach längerer Zeit noch abgerufen werden können. Natürlich müssen wir für diese Erweiterung auch einen Aufräum-Mechanismus implementieren, damit alte Datensätze entfernt werden können.

Ihr habt Verbesserungen oder einen Fehler gefunden? Sendet uns einen Pull-Request oder öffnet ein Issue.

Hannes

Johannes sorgt dafür, dass das Backend von karriere.at perfekt läuft, nämlich als PHP Web Developer. Dass man bei dieser Aufgabe Ausgleich braucht, liegt auf der Hand: Der leidenschaftliche Papa verbringt seine Zeit am liebsten mit Tochter und Ehefrau aber auch beim Laufen und im Sportverein.

Laravel Task Scheduling mit Docker

DEV TALK: Bugs in Developer Lebensläufen

karriere.at Hackathon 2016