[Moscow.pm] Валидатор для форм: хочу [не очень-то и] странного
Konstantin S. Uvarin
khedin на gmail.com
Сб Сен 3 01:09:18 PDT 2016
Приветствую.
Может, подскажет кто модуль? Просьба не холиварить на тему "лучше-хуже",
просто "огласите весь список" (с).
Хочу фильтр/валидатор/иное очистное сооружение для форм. Требования
примерно такие:
* инициализируем один раз, валидируем 100500 раз;
* на входе хеш параметр => строка;
* валидация параметра, как минимум, включает regexp, required =1|0 и
дефолтное значение;
* на выходе всё, что выжило после валидации, или пусто, если не прошло
валидацию что-то из required. (Если дохнет - тоже ок). Если какой-то
мараметр мусор - он просто молча выкидывается;
* опционально хеш с непрошедшими валидацию как второй return;
* опционально - strict mode, т.е. если есть лишние или хоть один параметр
defined и провалил валидацию - нафиг;
Т.е. псевдокод:
my $cleaner = My::Validator->( \%per_param_validation_profile);
# much later
my $safe_data = $cleaner->sanitize( \%evil_user_input );
my ($safe_data, $failed_param_details) = $cleaner->sanitize(
\%evil_user_input );
На CPAN-е валидаторов, ввв-валидаторов и пр., понятное дело, три дня греби
лопатой - я не смог продраться.
Был один как мне нужно, только наоборот -
my $val = My::Validator->new( $query );
$val->check( \%profile );
Но я-то хочу закешировать правила и применять к разным инпутам, а не
наоборот :)
Спасибо!
--
Konstantin S. Uvarin
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://mail.pm.org/pipermail/moscow-pm/attachments/20160903/6ca99787/attachment.html>
Подробная информация о списке рассылки Moscow-pm