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.