Title: Re: [Moscow.pm] Валидатор для форм: хочу [не очень-то и] странного
Здравствуйте, Konstantin.

Мне очень понавились валидаторы в Mojolicious, особенно добавлять свои.

потом просто делаем вызовы к нужным валидаторам и на выходе получем хеш проверенных данных.
Если ещё и страничку с помощью Mojolisious генерируете, то, в довесок за бесплатно, получаете выделения ошибочно введенных полей с описанием ошибки.

Возможно сам по себе модуль и не будет очень полезен (не знаю), но как в комбинации со всем остальным - рекомендую.

http://mojolicious.org/perldoc/Mojolicious/Validator



Вы писали 3 сентября 2016 г., 11:09:18:


Приветствую.

Может, подскажет кто модуль? Просьба не холиварить на тему "лучше-хуже", просто "огласите весь список" (с).

Хочу фильтр/валидатор/иное очистное сооружение для форм. Требования примерно такие:  

* инициализируем один раз, валидируем 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




--
С уважением,
Eugen                          
mailto:[email protected]
-- 
Moscow.pm mailing list
[email protected] | http://moscow.pm.org

Ответить