Odkaz s default hodnotami

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
phx
Člen | 651
+
0
-

Zdravim…

Velice bych ocenil novou vlastnost Nette. Kdyz vytvorim v presenteru nekolik persistentnich promennych s nejakou defautl honotou takz vzdy pri odkazovani na tento presenter se tyto atributy zachovavaji. Je to uzasna vlastnost, ale kdyz nahodou chci odkazd, ktery by se vratil do vychoziho nastaveni (vse na default hodnoty) tak jedina moznost je, ze v argumentech vyjmenuji v asociovanym poli vsechny persistentni parametry a predam jim defautl hodnoty. Tudis mam default hodnoty v definici a jeste v kazdem takovemto odkazu. Uvital bych nejakou moznost kde bych rekl, ze vse co nevyjmenuji v argumentech bude defaultni hodnota. Traba dalsi parametr k metode link(). Nebo misto pole predavat nejaky objekt.

Co myslite? Bylo by to uzitecne nebo si jen zbytecne vymyslim? Ja bych to tedy pouzil.

Editoval phx (19. 8. 2008 12:07)

David Grudl
Nette Core | 8147
+
0
-

phx napsal(a):

Tudis mam default hodnoty v definici a jeste v kazdem takovemto odkazu.

Parametr vyresetuješ na výchozí hodnotu tak, že mu v poli metody link() dáš hodnotu NULL.

NULL = default.

Uvital bych nejakou moznost kde bych rekl, ze vse co nevyjmenuji v argumentech bude defaultni hodnota. Traba dalsi parametr k metode link().

Proč ne, ale takovou věc bych implementoval teprve v okamžiku, kdy narazíš na reálný případ, kdy to bude potřeba.

phx
Člen | 651
+
0
-

David Grudl napsal(a):
Parametr vyresetuješ na výchozí hodnotu tak, že mu v poli metody link() dáš hodnotu NULL.

NULL = default.

Takze NULL hodnota nelze pouzivat jako hodnota. Ted me napada ze ji v URL vlastne nijak prejdat nejde. Takze NULL je default co jsem si ja nastavil a but to bude '' nebo treba to NULL ci neco uplne jineho. Jasny uz mam jasno.

Tak uz mam jen polovicni zlo;) (vyjmenovani persistentnich parametru)

David Grudl
Nette Core | 8147
+
0
-

phx napsal(a):

Ted me napada ze ji v URL vlastne nijak prejdat nejde.

Přesně tak. Navíc věc se týká pouze proměnných, které mají nějakou výchozí hodnotu a v takovém případě Nette zajistí přetypování vstupního parametru na stejný typ. To je druhý důvod, proč NULL předat nejde.

Každopádně je potřeba dávat pozor na obsah proměnných při volání link() – NULL se na '' nebo 0 přetypovat nemusí.

Tak uz mam jen polovicni zlo;) (vyjmenovani persistentnich parametru)

Představ si, že do nejvyššího presenteru přidáš třeba parametr $lang, který chceš vždy předávat. Pak bys musel ručně upravit všechny odkazy, které „nevyjmenovávají“.

phx
Člen | 651
+
0
-

Jasny chapu…

David Grudl napsal(a):
Představ si, že do nejvyššího presenteru přidáš třeba parametr $lang, který chceš vždy předávat. Pak bys musel ručně upravit všechny odkazy, které „nevyjmenovávají“.

Asi jsem moc extremni pripad. Ja jsem nemyslel vzdy abych musel vyjmenovavat co predat, ale mit moznost vypnout automaticke predavani vseho co nereknu. Hold to musim vyjmenovat. Odkaz tohoto typu je asi hodne vzacny…