Nejde nastavit sessions setExpiration – session has been already started

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

Podle sekce dokumentace Sessions v sekci Konfigurace session se pokouším nastavit její expiraci, nicméně chyba je, že tou dobou je již session nastartovaná.

Volám to samozřejmě v bootstrapu, ale došel jsem k zásadnímu rozporu: Podle dokumentace se k objektu $session dostanu přes systémový kontejner

$container->session

ovšem součástí jeho inicializace je nastartování session.

Můj bootstrap je klasický vzor ze sandboxu, Nette verze v2.0.0.

Zkrácený bootstrap.php

$configurator = new Nette\Config\Configurator;
$configurator->setProductionMode($configurator::AUTO);
$configurator->enableDebugger(__DIR__ . '/../log');

$configurator->setTempDirectory(__DIR__ . '/../temp');
$configurator->createRobotLoader()
	->addDirectory(APP_DIR)
	->addDirectory(LIBS_DIR)
	->register();

$configurator->addConfig(__DIR__ . '/config/config.neon');
$container = $configurator->createContainer();

$container->session->setExpiration('+ 14 days'); //ERROR
$container->session->setSavePath('%tempDir%/sessions');

Editoval bukaJ (23. 2. 2012 7:11)

Jakub Bouček
Člen | 54
+
0
-

Proklatý Neon! Já si snad nezvyknu! Už jsem to zprovoznil.

	nette:
		session:
			autoStart: smart
			expiration: + 14 days
			savePath: %tempDir%/sessions