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 | 8285
 
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.