- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
<?php
$form = new Validator;
$form
->newString(Request::get('nickname'));
->addRules(
new FW\Rules\NotEmpty(),
new FW\Rules\Length(4, 16),
new FW\Rules\RegExp('/^[a-z]+$/i')
);
->newString(Request::get('password'))
->addRules(
new FW\Rules\NotEmpty(),
new FW\Rules\MinLength(3),
new App\Rules\PasswordStrength(40)
);
->newString(Request::get('confirm'))
->addRules(
new FW\Rules\NotEmpty(),
new FW\Rules\Equals(Request::get('password'))
)
->newString(Request::get('email'))
->addRules(
new FW\Rules\NotEmpty(),
new FW\Rules\ValidEmail(Request::get('email'))
);
if ($form->isValid()) {
reg_user(Request::get('nickname'), Request::get('password'), Request::get('email'));
} else {
print_r($form->getErrors());
}
Mitusbka 04.11.2009 15:52 # 0
guest 24.01.2010 11:00 # 0
guest 04.11.2009 16:34 # −1
Mitusbka 04.11.2009 17:32 # 0
striker 05.11.2009 01:43 # −0.2
guest 23.11.2009 03:26 # −0.2
guest 24.01.2010 10:43 # +0.2
guest 04.11.2009 17:36 # −2.2
guest 05.11.2009 09:38 # +1
guest 05.11.2009 10:43 # 0
guest 17.11.2009 17:19 # 0
guest 24.01.2010 10:44 # 0
interested 04.11.2009 20:09 # +3.2
Надо было от класса Validator унаследовать userRegisterValidator, который бы всё это в конструкторе создавал... А потом ему в некий метод кидались бы поля, а он возвращал результат проверки и ошибки... А так смысл то? Заменить три строчки проверки if preg_match else на кучу всяких new и -> прочей фигни...
Вот не удивлюсь, если на сайте существуют две одинаковые формы, для каждой из который написан такой вот повторно используемый код =]
(j/k)
Mitusbka 04.11.2009 21:45 # 0
и плюс прописывание правил для ключей а не ключей для правил
в результате куча копипаста
interested 04.11.2009 21:53 # +5
Это называется ООВ -- объектно ориентированный выпендрёж.
Мол, я знаю new class public и много других страшных слов.
Уж если не умеют так, делали бы по-другому... Но они будут упорствовать до хрипоты, что они делают ООП, и это круто.
guest 23.11.2009 03:28 # 0
interested 24.11.2009 19:22 # 0
Хочу узнать, какие же преимущества есть у объектного кода перед моим?
Если выигрыша нет, то данный говнокод есть ни что иное, как ООП ради ООП`а, который в случае Java ещё был бы оправдан, но в случае php является просто увеличением энтропии Вселенной и приближает нас к неминуемой тепловой смерти... ( про энтропию j/k)
guest 24.01.2010 10:46 # 0
guest 26.05.2010 19:37 # 0
таке злоебуча хуйня не разу не прокатит, и пых пошлет вас нахуй с вашей подобией головы.
;
->ololo()
guest 24.01.2010 11:01 # 0
striker 05.11.2009 01:44 # 0
interested 05.11.2009 08:07 # 0
Действительно userRegisterValidator, вероятно, ни где больше использоваться не будет (хотя и это совершенно не обязательно). И это был пример того, что стоило бы сделать. Сделать полиморфный валидатор, наследный валидатор. Потому что многие формы похожи. Нужно из таких форм конструктивные куски выделять. А прямое использование приведённого метода, приведёт к страшной копипасте... Две совершенно одинаковые формы будут просто скопированы, вместо того, чтобы использовать уже созданный объект, или хотя бы создать в одну строчку тот же самый, использовать прописанное повторно.
striker 05.11.2009 09:33 # 0
разве не логично, что две одинаковые формы должны обрабатываться одним контроллером?
interested 05.11.2009 10:17 # 0
Может быть и другое. Например, многие формы имеют три одинаковых поля с одинаковой проверкой, хотя формы разные: регистрация пользователя, комментарий, загрузка нового стиха пользователем. Не выгоднее ли создать один общий контроллер для одинаковых полей, а затем конкретизировать его для каждой формы доопределив те поля, которые в них уникальны?
Если таких пересечений мало или их нет вообще, значит сущность "формы" не нужна. Её вообще не должно быть в проекте. Должна быть сущность валидатора поля и именно к ней должны цепляться данные, потому что уж одинаковые поля с одинаковой проверкой точно встречаются.
Либо на не нужна сущность формы -- она уже превысила необходимое, либо она слишком абстрактна и от неё есть полиморфные производные, которые действительно используются.
Лев состоит из лап, головы, хвоста и туловища. Мы будем создавать сущность льва или будем конструировать его из лап и хвостов? Ответ на вопрос должна дать задача. Используем ли мы льва? Есть ли в этом смысл? Если мы сначала создаём льва, а потом отдельно используем от него лапы, то зачем лев? Но если у нас есть львы и львицы, например, то странно не ввести льва и не унаследовать от него самца и самку.
striker 05.11.2009 12:42 # 0
Про "хитрость" проекта с Вами абсолютно согласен! Можно проектировать так, что классы-валидаторы будут использоваться в разных местах.
guest 24.01.2010 10:48 # 0
cheef 05.11.2009 13:14 # 0
interested 05.11.2009 08:12 # 0
Плодит сущности это MinLength и Length.
interested 05.11.2009 08:23 # 0
ivmaroz 05.11.2009 10:16 # 0
->newString(Request::get('nickname'));->addRules( - что это за синтаксис (; не должно тут быть)?
А вот это new FW\Rules\NotEmpty()
Если уж придумываете коды, так хоть пишите синтаксически правильно
interested 05.11.2009 10:31 # 0
Похоже на то.
Там одну точку с запятой нужно из верхнего выражения опустить за пассворд.
Наверное это и стало причиной того, что автор обнаружил этот код. При парсинге произошла ошибка, Mitusbka полез поглядеть и ... Возможно это просто сохранена оригинальная пунктуация.
Holden 05.11.2009 11:28 # 0
Это часо не неймспейсы юзаются?
Mitusbka 05.11.2009 17:41 # 0
; это опечатка скорее
а уж о неймспейсах стыдно не знать =)
Mitusbka 05.11.2009 17:43 # 0
Mitusbka 05.11.2009 17:44 # 0
ivmaroz 05.11.2009 18:12 # 0
Mitusbka 05.11.2009 18:54 # 0
Ps. Введено то в 5.3 а планировалось давненько уже
guest 05.11.2009 17:33 # 0
Yozheg 06.11.2009 09:08 # 0
guest 06.11.2009 23:53 # +1
люди на них смотрят и свято верят что это эталон и надо его придерживаться =\
guest 11.11.2009 01:39 # 0
interested 11.11.2009 09:02 # +1
То есть вы видеть здесь что-то иное, чем
?
Так расскажите нам, в чём преимущество кода.
Вот мой код тоже читаемый, очень хорошо читаемый, и более эффективный.
Так где подвох-то?
interested 11.11.2009 09:05 # 0
Тут сообщения нельзя править.
guest 24.01.2010 10:51 # 0
guest 27.02.2010 15:32 # +0.2
guest 11.11.2009 01:40 # −2
guest 11.11.2009 06:57 # 0
guest 24.01.2010 10:42 # 0
guest 13.11.2009 14:15 # 0
/^[a-z]{4,16}$/i
guest 13.11.2009 17:32 # 0
Mitusbka 16.11.2009 16:05 # 0
guest 24.01.2010 10:51 # 0
guest 24.11.2009 16:31 # 0
guest 24.01.2010 10:53 # 0
тупой кодинг по шаблону Java'ы
guest 27.02.2010 15:36 # 0
А в примере — ООП ради ООП. Как эксперимент или пример — забавно, как часть проекта — перебор.
guest 12.03.2010 18:50 # 0
DOM не для валидации ни разу