Onda verovatno nisi dobro gledao... Većina framework-ova u svojim komponentama zaduženim za forme, primenjuje upravo nešto što se zove ciklus forme. Npr. korisniku submit-uje forme, vrši se validacija, ako ima grešaka prikazuju se poruke u greškama, ako nema, radi se sad neka određena akcija definisana u kontroleru. Naravno, ceo taj proces možeš da custom-izuješ prema svojim potrebama...
Ja sam npr. u nekim projektima kobminovao Smarty i poneke komponente iz Zend Framework-a, konkretno Zend_Form, na način da sam kompletnu logiku za validaciju i filtriranje forme držao u klasi koja se izvodi iz Zend_Form, a ono kako se forma ispisuje je u Smarty template-u (iako u okviru Zend_Form komponente postoje tkz. dekorateri, kojim možeš u potpunosti da definišeš kako će forma da se render-uje). I onda proces submit-ovanja forme ide npr. ovako:
$kontaktForma = new KontaktForma(); //Instanciranje forme (klase koja se izvodi iz Zend_Form)
if ($kontaktForma->isValid($_POST)) { //Validna forma?
$podaci = $kontaktForma->getValues(); //Dohvatanje submit-ovanih i pritom izfiltriranih podataka iz forme
//ovde sad ide npr. slanje email-a na osnovu podataka iz forme
}
else {
$smarty->assign('unos', $_POST); //Prosledjivanje svih podataka smarty-ju kako bi bilo ponovo prikazani korisniku
$smarty->assign('poruke', $kontaktForma->getMessages()); //Prosledjivanje poruka o greskama smarty-ju
}