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
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
Proklatý Neon! Já si snad nezvyknu! Už jsem to zprovoznil.
nette:
session:
autoStart: smart
expiration: + 14 days
savePath: %tempDir%/sessions