[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите выбрать валидатор
Ron
Всем привет!

Уважаемые знатоки, подскажите, пожалуйста, валидатор примерно такой же как в Симфони, только мне нужен попроще.

Есть объект, нужно определить присутствуют ли в нем указанные свойства и какие значения им присвоены.

Например:
class registrationForm
{
public $userName = 'Ivan'; //String, not null (required), from 4 to 20 char.
public $userPhone = '123456'; //Integer, not null
}

Ну и где-то указывать чего я ожидаю, скажем, через аннотации. Или отдельным массивом в свойсте rules. Желательно, чтобы были готовые типы: email и так далее. И еще проверка через регулярки, хотя можно только ее в конце-концов.

Типа
public $rules = array('propertyName'=>array('regex'=>'value',
'error'=>'Имя должно содержать...'));


Собственно говоря сам вопрос: подскажите есть ли подходящий под описание валидатор? Чего-то ломы самому велосипедить, долго это и ну бред жеж, должно быть что-то готовое уже. Решение от Симфони тяжеловато, мне не нужна такая гибкость, потому что проект лайтовый, там этот валидатор будет чуть ли не больше, чем весь движок. =)


chee
максимум что я смог найти
https://packagist.org/packages/alexgarrett/violin

Но я бы написал свой, так как там ничего сложного нет.

_____________
Люди, имеющие низкий уровень квалификации, делают ошибочные выводы, принимают неудачные решения и при этом неспособны осознавать свои ошибки в силу низкого уровня своей квалификации
Zzepish
МОжно вытащить валидатор из зенда второго!
Ron
Спасибо за помощь!

Цитата (chee @ 1.07.2016 - 23:34)
максимум что я смог найти

Да, вполне неплохая штука, но придется обертку-адаптер писать. Тогда проще действительно самому на регулярках сваять валидатор и хрен с ним. Трудозатрат будет примерно столько же, может быть даже меньше.

Цитата (Zzepish @ 2.07.2016 - 00:19)
МОжно вытащить валидатор из зенда второго!

Чего-то посмотрел, выглядит не аппетитно. На каждый тип данных свой объект получается? Лажа по-моему. Или я плохо доку читал? )

Буду на регулярках делать, действительно, а чего это я? ))) Регулярки знаю хорошо, даже очень (это не камень в огород). wink.gif

Вот думал через анотации объявлять, только к ним доступ через Reflection, - ужасная вещь. Неужели в симфони так же?

Кстати тут попутно любопытное наблюдение: регулярки на PHP 7 работают в 2 раза медленее. Ну там копейки конечно, и все же удивительно.

Zzepish
Ron
Цитата
Чего-то посмотрел, выглядит не аппетитно. На каждый тип данных свой объект получается? Лажа по-моему. Или я плохо доку читал? )

Я так глубоко еще не читал) я только учу зенд в целом biggrin.gif
Цитата
Кстати тут попутно любопытное наблюдение: регулярки на PHP 7 работают в 2 раза медленее. Ну там копейки конечно, и все же удивительно.

О_о вот это интересный факт! Надо будет затестить!
brevis
Когда-то сохранил в закладки https://github.com/Respect/Validation . И судя по количеству stars -- не я один.

Сам я его никогда не использовал, всё жду подходящего момента smile.gif Не знаю насколько эта штука легкая, но как минимум интересная. Умеет много всякого, больше сотни вилидаторов из коробки, может юзать зендовские и симфониевские валидаторы.

_____________
Чатик в телеге
Ron
brevis, а вот это более чем любопытно! Автор валидатора, конечно, проделал большой труд, такую штуку сразу не напишешь. Хотя архитектурно там ничего особенного нет, просто хороший подход, не более того.

Там единственное что я не понял, так это валидация загруженных файлов. Предлагается указать путь до временного файла, который через пост был передан. А кто будет валидировать вообще он прилетел или там сразу web сервер отлупил и никакого временного, естественно, не будет. Тут минус на мой взгляд. Хотя своё правило можно наговнякать под валидацию аплоадов.

Да, интересненько!

Можно жеж сделать в entity метод isValid() и натравить валидатор на самого себя. Архитектурно может быть и неочень правильно, зато крайне удобно. Просто у объекта с данными спрашивать валиден он или нет.

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.