Session tradičně a zároveň v sqlite kofigurace

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

Ahoj,

řeším nyní následující konfiguraci – toto funguje báječně:

	nette:
		session:
			factory: Nette\Http\Session
			autoStart: smart
			save_handler: sqlite
			save_path: "%tempDir%/sessions.sqlite"
			gc_maxlifetime: "%sessionExpiration%"
			cookie_lifetime: "%sessionExpiration%"

Tedy ukládám session do sqlite, abych mohl zajistit extrémně dlouhou expiraci. Do této session chci ukládat ale jen data, která to opravdu potřebují, zbylé bych rád ukládal do klasické session. Jak to ale konfigurovat? Tedy chci něco jako:

	nette:
		session:
			autoStart: smart


	services:
		sessionLong:
			class: Nette\Http\Session
			setup:
				- setOptions([
				autoStart: smart
				save_handler: sqlite
				save_path: "%tempDir%/sessions.sqlite"
				gc_maxlifetime: "%sessionExpiration%"
				cookie_lifetime: "%sessionExpiration%"])

Což neprojde, laďence se nelíbí dvě session service (Service ‚nette.userStorage‘: Multiple services of type Nette\Http\Session found).Díky za jakýkoliv popostrčení

EDIT:\\ Otázka spíše zní, jak udělat dvě service s různou konfigurací. Je mi jasné z principu službiček, proč nechce vytvořit více instancí. Ale jak to obejít, když to člověk opravdu potřebuje bez toho, abych duplikoval Nette\Http\Session do třídy s jiným názvem?

A opravdu chci, aby to byly služby, ne továrničky :) Prostě chci mít v systému od každé zaručenou jen jednu instanci.

Editoval pidiclovek (20. 4. 2012 12:35)