Správnost konfigurace session v konfiguračním souboru

- uestla
 - Backer | 799
 
Ahoj, snažím se hrát si s configem a vytěžit z něj maximum, a koukám, že se v něm dá nastavit většina věcí, co šla v minulé verzi jen v bootstrapu. Mám ale dotaz, jestli je správně, když expiraci session nastavuji následujícím způsobem:
common:
	services:
		# ...
		session:
			arguments: [ [ expiration: "+ 7 days" ] ]
V builderu se to „zkompiluje“ na
$container->addService('session', function($container) {
	$service = call_user_func(
		array ( 0 => 'Nette\\Configurator', 1 => 'createServicesession', ),
		$container,
		array ( 'expiration' => '+ 7 days', )
	);
	return $service;
}, NULL);
což bylo požadováno, a tím pádem už nemusím v boostrapu volat
$container->session->setExpiration('+ 7 days');
a hlavně je to asi i lepší, že se to nastaví už při vytváření
servicu, než až po něm. Trochu mi ale trvalo si s tím hrát, než jsem
dospěl k výše uvedenému konci, hlavně tedy jak předat pole jako argument
přímo továrně na service, aby se opravdu předal při zavolání
Configurator::createServiceSession() :-) Je to ale
nejsprávnější způsob, nebo to lze ještě lépe, případně zda-li jsou
s tímto postupem spojeny jakékoli možné komplikace? Předem děkuji.
PS:
Tím pádem by možná šlo i přepsat nastavení cesty pro ukládání, co je teď v sandboxu, na výše uvedenou formu, čili jen upravit na
		session:
			arguments: [ [
				save_path: "%tempDir%/sessions",
				expiration: "+ 7 days",
			] ]
				
- Filip Procházka
 - Moderator | 4668
 
Mělo by jít nastavit vše co je uvedeno zde.
Config ale umožňuje o něco hezčí syntaxi, neověřoval jsem ale mělo by to jít takto nějak (kvůli druhému argumentu v továrničce)
services:
	session:
		options:
			save_path: "%tempDir%/sessions"
			expiration: "+ 7 days"
Mimochodem [] znamená seznam, lepší je si pamatovat jako
v JSON, že se dají používat {}. Nejpřehlednější mi ale
přijde vypsat položky pod sebe.

- uestla
 - Backer | 799
 
Vypadlo ti tam ještě arguments:, ale pak už to funguje, moc
děkuju!
Taky se mi nelíbilo psát to do seznamu, odsazování je víc sexy a pohodlnější (i když v NetBeans je to peklo, když odřádkuju, tak je tam asi nějaký randomize na to, jestli se mají použít mezery nebo tabulátory…), především díky absenci čárek.
Čili finálka:
services:
	session:
		arguments:
			options:
				save_path: "%tempDir%/sessions"
				expiration: "+ 7 days"
Ještě dotaz – souvisí klíč „options“ s názvem proměnné předávané továrničce?
PS:
Nestálo by tedy za to přesunout v sadboxu ono zmíněné (ač
zakomentované) session.save_path: "%tempDir%/sessions" do
takovéto formy? Přeci jen to znamená zavolání interního Nette handlingu
session a nevolá se tak ini_set jako právě v sandboxu, ale přímo session_save_path() ?
Editoval uestla (26. 6. 2011 16:35)

- Filip Procházka
 - Moderator | 4668
 
Já tam to arguments nenapsal schválně, domnívám se, že to
funguje i bez téhle úrovně navíc.