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
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
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
@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)