phpbar.de logo

Mailinglisten-Archive

[php] Array in Session speichern?

[php] Array in Session speichern?

Yannik Hampe yannikh at gmail.com
Son Sep 24 22:30:54 CEST 2006



Niels Runge wrote:
> Hallo Julian,
>> Insgesamt sind ca. 300 Elemente auf 5 Dimensionen verteilt. Macht 
>> es Sinn diesen Baum beim Login einmalig erstellen zu lassen und dann in 
>> der $_SESSION zu speichern? Oder haltet Ihr den Geschwindigkeitsgewinn 
>> für unerheblich?
>>   
> zu groß Werte sollten nicht in der Session gespeichert werden.
> (habe es allerdings nie wirklich getestet, also vielleicht täusche ich 
> mich auch)
> 
> Du schreibst ja dass der Baum Benutzer bzw. sessionsabhängig ist, bei 
> einem Projekt wo ähnliches
> gelöst werden sollte, habe ich es einfach mit var_export($var, TRUE) 
> exportiert und dann gespeichert (als einfach Datei)
Da könntest du dann aber auch serialize() nehmen... Ich könnte mir 
vorstellen, dass das schneller ist (hab' aber eigentlich keine Ahnung).
Und $SESSION macht auch nichts anderes, als die Variable in eine Datei 
zu schreiben. Und wenn man eh schon $SESSION verwendet, dann kann man 
auch dessen Funktionen benutzen.
Im Zweifelssfall dauert es nämlich lange die Datei zu öffnen und die 
Sessiondatei muss sowieso geöffnet werden...
> 
> Performancemässig war das eine akzeptable Lösung denke ich (auf dem 
> Server gab es kein Memcache o.ä.)
> 
> Die Überprüfung war dann einfach so ->
> 
>     function check($name, $time) {               
>         return file_exists(DIR_CACHE_DATA.$name) && (time() - 
> filemtime(DIR_CACHE_DATA.$name) < $time);
>     }
> 
> Und $name hat sich dann ungefähr so zusammengesetzt ->
> $name = 
> 'navigation_'.$_SESSION['user_id'].'_'.$_SESSION['andere_session_variable'];
> 
> Gruß
> Niels

php::bar PHP Wiki   -   Listenarchive