Hallöchen,
hatte mal eine Klasse gefunden zum Einsatz als SessionHandlerInterface...
Hier verwundert mich die read()-Funktion einwenig und wollte gern wissen ob es Gründe gibt für die Vorgehensweise, denn eigentlich geht es kürzer und Server-schonender...
Originalfunktion:
Kurze-variante:
Hatte erst gedacht das evtl. die Session-Datei in $tmp geladen wird aber dem ist nicht so wäre ja auch Käse weil dadurch würde ja der Geschwindigkeitsvorteil verloren gehen wenn erst die Datei und dann ausm Arbeitsspeicher geladen würde.
Es wäre aber nicht ganz uninteressant dies evtl. als Fallback einbauen zu können. Zur Zeit habe ich es so das die Sitzungen nur sehr kurz (15Minuten) in Memcache gespeichert werden, außer der User nutzt die Seite aktiv dann geht der 15Minuten-Countdown immer von vorne los (es gibt natürlich diverse Fallbacks die das surfen ungehindert verlängern).
Sind die 15 Minuten einmal ohne Aktivitäten vorüber erhält der User eine frische Session (als frisch eingeloggt), somit sind natürlich etwaige Prozesse futsch (könnte man natürlich in die DB auslagern) aber daher wäre vllt. das Session-file das länger aufm server existiert nicht uninteressant (es existiert ja ohne hin schon).
MfG: Paykoman
hatte mal eine Klasse gefunden zum Einsatz als SessionHandlerInterface...
Hier verwundert mich die read()-Funktion einwenig und wollte gern wissen ob es Gründe gibt für die Vorgehensweise, denn eigentlich geht es kürzer und Server-schonender...
Originalfunktion:
PHP-Code:
public function read($id){
$tmp = $_SESSION;
$_SESSION = json_decode($this->memcache->get($this->pref.$id), true);
if(!empty($_SESSION) && $_SESSION != null){
$new_data = session_encode();
$_SESSION = $tmp;
return $new_data;
}else{
return '';
}
}
PHP-Code:
public function read($id){
$_SESSION = json_decode($this->memcache->get($this->pref.$id), true);
if($_SESSION !== null){
return session_encode();
}else{
return '';
}
}
Es wäre aber nicht ganz uninteressant dies evtl. als Fallback einbauen zu können. Zur Zeit habe ich es so das die Sitzungen nur sehr kurz (15Minuten) in Memcache gespeichert werden, außer der User nutzt die Seite aktiv dann geht der 15Minuten-Countdown immer von vorne los (es gibt natürlich diverse Fallbacks die das surfen ungehindert verlängern).
Sind die 15 Minuten einmal ohne Aktivitäten vorüber erhält der User eine frische Session (als frisch eingeloggt), somit sind natürlich etwaige Prozesse futsch (könnte man natürlich in die DB auslagern) aber daher wäre vllt. das Session-file das länger aufm server existiert nicht uninteressant (es existiert ja ohne hin schon).
MfG: Paykoman
Kommentar