Perzistentní parametry v session
- na1k
- Člen | 288
Dlouhou dobu jsem chodil kolem loadState
a
saveState
po špičkách a snažil jsem se jim vyhnout, stejně
jako perzistentním parametrům. Nelíbilo se mi, že se přenáší v URL a
vůbec jsem jim nerozuměl, tak jsem si vždy poradil jinak.
Teď jsem se ale dostal do stavu, kdy by se mi opravdu hodilo mít
u komponenty několik perzistentních parametrů a podle toho co jsem se
dočetl v postech tady na fóru, je možné vlastní implementací právě
metod loadState
a saveState
docílit ukládání
těchto parametrů ne v URL, ale v session. To by se mi velice hodilo, ale
bohužel nejsem schopný se s tím poprat :(
Určitě je kód velice triviální, ale přesto prosím o nakopnutí. Mám
(zatím) jeden parametr, označený jako perzistentní. Matou mě ale parametry
funkcí loadState
a saveState
… sám bych to řešil
například načítáním a ukládáním do session v konstruktoru a
destruktoru, ale chtěl jsem to udělat tak nějak v duchu Nette a použít už
předpřipravených metod.
- David Grudl
- Nette Core | 8229
Metody loadState a saveState jsou interní, víceméně je nebudeš potřebovat (což mi připomíná, že bych měl příklad Fifteen v distribuci upravit tak, aby je nepoužíval, protože to asi zbytečně mate).
Stačí ti uvést anotaci @persistent
u těchto proměnných ve
zdrojovém kódu:
class NejakaKomponent {
/** @persistent */
public $promenna;
}
Přenášení v URL je charakteristický rys persistentních parametrů. Pokud potřebuješ zachovávat persistenci v session, tak je nepoužívej a místo nich použij přímo session.