DRY přístup a podmíněná pravidla formulářů

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

Řeším teď jeden projekt, kde se ve formuláři vyskytuje netriviální logika podmíněných pravidel, podle kterých se aktivují toggles a nastavují validační pravidla inputů skrývaných příslušným togglem a tato logika se mi tam několikrát opakuje – jednou tam je pro aktivaci toggles a pak několikrát pro validační pravidla jednotlivých skrývaných inputů. Existuje nějaký elegantní způsob, jak tuto logiku v kódu neopakovat?

Problém by asi vyřešilo něco jako podmínky podle toggles (či jejich obdoby určené čistě k těmto účelům), tj. např.:

$fooInput->addConditionOn(...)
	... // some complex logic
		->toggle('barToggle')
	->elseCondition()
	... // more complex logic
		->toggle('bazToggle')
	->endCondition();

$barInput->addConditionOnToggle('barToggle') // aktuálně není v Nette takto možné
	->setRequired($barRequiredMessage);