Diwi, testowałem już podobną koncepcje - ... - jest do dużo więcej pisania niżeli potrzeba i w dodatku takie .. nie wygodne.
Moja biblioteka formularzy składa się z dwóch klasa (Form, ValidateForm) + wtyczki fo klasy szablonów
To co zaprezentował divi u mnie by wyglądało tak:
Kod
{form id="NameForm"}
Imię: <input type="text" name="NameForm[Imie]" />
{if #Error[Imie]}
{#Error[Imie][0]} <!-- Wyświetla pierwszy błąd -->
{/if}
Nazwisko: <input type="text" name="NameForm[Nazwisko]" />
{if #Error[Nazwisko]}
{#Error[Nazwisko][0]} <!-- Wyświetla pierwszy błąd -->
{/if}
Hasło: <input type="text" name="NameForm[Haslo]" />
{if #Error[Haslo]}
{#Error[Haslo][0]} <!-- Wyświetla pierwszy błąd -->
{/if}
Powtorz haslo: <input type="text" name="NameForm[ReHaslo]" />
{/form}
i w php
<?php
$oForm = new Form( "NameForm" );
$oValidateForm = new ValidateForm( "Imie" );
$oValidateForm -> is();
$oForm -> errorVal( $oValidateForm );
$oValidateForm = new ValidateForm( "Nazwisko" );
$oValidateForm -> is();
$oForm -> errorVal( $oValidateForm );
$oValidateForm = new ValidateForm( "Haslo" );
$oValidateForm -> is();
$oValidateForm -> equal( $oForm -> ReHaslo() );
$oForm -> errorVal( $oValidateForm );
$oTemplate -> form( $oForm );
?>
$oValidateForm wysyła kod błędu do $oForm, a $oForm pobiera odpowiedni string z plików językowych

[Dodano] Ludvik, popitoliło Cię z tym diagramem

. Takie rozbicie nie ma sensu jeżeli chodzi o aplikacje http