Ukládání Sessions v databázi

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
JJWorren
Člen | 6
+
0
-

Ahoj lidi víte někdo jak to je s ukládáním sessions do DB? koukal sem že se objevil Interface pro vlastní Session Storage nicméně nějak mi to nějakou černou magii někde funguje a někde ne.. neimplementoval už někdo popřípadě nechystáte se zavést nějaký obecný DB storage na sessions přímo do Nette?

Filip Procházka
Moderator | 4668
+
0
-

Na to zajisté slouží metoda Nette\Web\Session::setStorage, kterou je třeba zavolat, před spuštěním session

Petr Motejlek
Člen | 293
+
0
-

@JJWorren: Potřebuješ si tu obsluhu nutně psát sám? PHP totiž umí samo od sebe ukládat sessions i do sqlite databáze. Normálně mu nastavíš jako handler sqlite a cestu na nějaký soubor a ono se s tím už popere. Pro Nette na to používám tuhle konstrukci:

<?php
[production < common]
variable.defaultSessionExpiration                 = 1209600 ;60 * 60 * 24 * 14
service.Nette-Web-Session.factory                 = Nette\Web\Session
service.Nette-Web-Session.option.save_handler     = sqlite
service.Nette-Web-Session.option.save_path        = "%tempDir%/sessions.sqlite"
service.Nette-Web-Session.option.gc_maxlifetime   = "%defaultSessionExpiration%"
service.Nette-Web-Session.option.cookie_lifetime  = "%defaultSessionExpiration%"
service.Nette-Web-Session.run                     = true
?>

Editoval Petr Motejlek (22. 3. 2011 12:49)