denver
?>Скриптер
PHP-валидатор полей формы (Form validator)
Подскажите плиз идею (или решение, или докажите отсутствие решения
) такого валидатора полей формы чтоб форма задавалась одним махом (массив или еще как) без всякой PHP логики. HTML_QuickForm на мой взгляд не самое лучшее решение, хотя кажется расчитан на форму любой сложности. Не нравится мне куча методов (addField, AddGroup и т.п.) неужто нельзя форму со всеми валидаторами и дефолтными значениями задать одним массивом например?
Под формой высокой сложности я подразумеваю форму, проверка которой подразумевает не только проверку каждого поля
(например is_not_empty, is_valid_email и т.п.) , но и сложные проверки -- как, допустим, некое поле проверять на что-то только если другое поле равно определенному значению.
HTML здесь out of scope. Мне НЕ нужен генератор HTML, только лишь валидатор всех полей формы. Возможно с callback функцией парсинга ошибок, но необязательно.
Вобщем главное что хотелось бы видеть -- инициализацию формы попроще, но итуитивную и с поддержкой сложных проверок, что-то наподобие:
У кого какие назработки/ссылки, делитесь или натолкните на идею 
Подскажите плиз идею (или решение, или докажите отсутствие решения

Под формой высокой сложности я подразумеваю форму, проверка которой подразумевает не только проверку каждого поля
(например is_not_empty, is_valid_email и т.п.) , но и сложные проверки -- как, допустим, некое поле проверять на что-то только если другое поле равно определенному значению.
HTML здесь out of scope. Мне НЕ нужен генератор HTML, только лишь валидатор всех полей формы. Возможно с callback функцией парсинга ошибок, но необязательно.
Вобщем главное что хотелось бы видеть -- инициализацию формы попроще, но итуитивную и с поддержкой сложных проверок, что-то наподобие:
PHP:
$form = array(
'name' => array()
'email' => array(
'default' => '[email protected]',
'validators' => 'is_not_empty, is_valid_email'
)
'password' => array(
'phrase' => array(
'validators' => 'is_not_empty',
),
'confirm' => array(
'validators' => 'is_not_empty',
)
'validators' => 'is_equal',
)
);
if (is_valid_form($form, $_POST, $errors)) {
// do smth ...
} else foreach ($errors) {
// parse errors ...
}
