Form::isSubmitted a Form::setDefaults

- kravčo
 - Člen | 721
 
Zatiaľ som sa s použitím metódy Form::setDefaults() stretol
výlučne v prípade nastavovania počiatočných hodnôt formulára: buď ako
východzie, alebo – pri editačnom formulári – nastavené podľa
nejakých dát z modelu. Takže kedykoľvek som ju použil, obaľoval som ju
podmienkou !Form::isSubmitted():
// v továrničke
$form = new AppForm;
...
$form->addSubmit(...)
    ->onCheck[] = ...;
if (!$form->isSubmitted()) {
    $form->setDefaults(array(
        ...
    ));
}
Má táto metóda i iné využitie – v prípade odoslaného formulára? (okrem zrejmého, že premaže poslané dáta). Mojim cieľom je zbaviť sa opakujúcej podmienky.
S názvom funkcie mi správanie v tomto prípade – premazanie
odoslaných dát – príde ako protichodné. Logickejšie sa mi pre tento
prípad vidí napríklad názov setValues(). Pričom
setDefaults() by som implementoval ako:
public function setDefaults($array) {
    if (!$this->isSubmitted()) {
        $this->setValues($array);
    }
}
Čo myslíte?
Editoval kravco (9. 4. 2009 0:39)

- David Grudl
 - Nette Core | 8285
 
Zrovna včera jsem nad tím přemýšlel :-) Váhal jsem, jestli taková změna bude nebo nebude zpětně kompatibilní, ale v podstatě by měla být.