Proč během jednoho requestu vrací Application::storeRequest() pokaždé jiný klíč?
- Petr Motejlek
- Člen | 293
Ahoj. Trochu jsem si teď hrál s Application::storeRequest a Application::restoreRequest a tak mě napadlo – když během jednoho requestu chci víckrát udělat storeRequest, je k něčemu dobré (resp. ví někdo o use case, kde se to tak používá), aby se při každém zavolání storeRequest uložil aktuální request do jiného klíče?
Když mám aplikaci, kde v šabloně @layout jsou například 4 widgety, které odkazují na nějakou akci, ze které by se aplikace měla sama vrátit zpátky, tak se mi storeRequest volá 4× a tedy vrací 4 různé klíče.
Pro sebe jsem si udělal v presenteru atribut currentRequestKey a getter, který, pokud v tom atributu nic není, udělá Application::storeRequest(), uloží do toho atributu klíč a ten klíč vrátí. Pokud v tom atributu už něco je, vrací se automaticky to něco :). Nevím, jestli nenarazím na nějakou chybku, ale zatím mi to všude funguje, jak má.
Z toho teda vychází má otázka – je k něčemu dobré, aby se během jednoho requestu při každém zavolání Application::storeRequest() vracel jiný klíč?
- Filip Procházka
- Moderator | 4668
Představ si, že si vygeneruješ 10 odkazů na stránce a každá bude mít
backlink. Uživatel si všechny postupně otevře v novém panelu a ten
původní zavře. Klikne na první, vyplní třeba formulář a odešle.
Formulář se přesměruje zpátky na přehled. Uživatel zavře okno a jde na
další panel. Opět něco vyplní, odešle a co udělá stránka? zůstane
viset tam, odkud ji odeslal, protože jsi zavolal restoreRequest
s klíčem, který už byl smazán s předchozím přesměrováním. Což mě
osobně taky vadí.
Chtělo by to nějaký counter otevření adresy, s tím konkrétním
backlinkem, ale to by byl třeba nějaký BacklinkManager. Který by uměl
request ukládat a pracovat s tímhle čítačem. Sice je problém, že
uživatel nemusí vyvolat akci, která by restore
vyvolala, ale to
je menší problém, než když se to nepřesměruje vůbec.
Pokud to nikdo nenapíše, asi se toho ujmu. Časem, až to budu potřebovat :)
- Petr Motejlek
- Člen | 293
Jasně, rozumím. Musím se podívat, jak moc je storeRequest náročná operace. Když to totiž takhle píšeš, tak by vlastně naopak bylo potřeba generovat extra klíč pro každý odkaz ;).