[Moscow.pm] Валидатор для форм: хочу [не очень-то и] странного

Konstantin S. Uvarin khedin на gmail.com
Вт Сен 6 04:36:56 PDT 2016


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

  Для полноты картины.

  Вот тут в соседнем чатике советую LIVR,

  https://metacpan.org/pod/distribution/Validator-LIVR/README.pod
  https://habrahabr.ru/post/246521/


2016-09-03 11:09 GMT+03:00 Konstantin S. Uvarin <khedin на gmail.com>:

> Приветствую.
>
> Может, подскажет кто модуль? Просьба не холиварить на тему "лучше-хуже",
> просто "огласите весь список" (с).
>
>  Хочу фильтр/валидатор/иное очистное сооружение для форм. Требования
> примерно такие:
>
> * инициализируем один раз, валидируем 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/20160906/82571ad9/attachment.html>


Подробная информация о списке рассылки Moscow-pm