У меня есть вопрос о проверке формы и проверке бизнеса.
Я вижу много фреймворков, которые используют какую-то библиотеку проверки формы. Вы отправляете некоторые значения, и библиотека проверяет значения из формы. Если не в порядке, он покажет некоторые ошибки на вашем экране. Если все пойдет по плану, значения будут установлены в доменные объекты. Здесь значения будут или, лучше сказать, должны быть проверены (снова). Скорее всего, такая же проверка в библиотеке проверки. Я знаю 2 PHP-фреймворка, имеющих такую конструкцию Zend / Kohana.
Когда я смотрю на программирование и некоторые принципы, такие как Не повторяй себя (СУХОЙ) и принцип единой ответственности (SRP)
это не очень хороший способ. Как видите, это подтверждается дважды.
Почему бы не создать объекты домена, которые выполняют фактическую проверку.
Пример: форма с именем пользователя и адресом электронной почты
Форма отправлена. Значения поля имени пользователя и поля электронной почты будут заполнены в 2 разных объектах домена: имя пользователя и адрес электронной почты
class Username {}
class Email {}
Эти объекты проверяют свои данные и, если они недействительны, выдают исключение.
Ты согласен? Что вы думаете об этом подходе? Есть ли лучший способ реализовать проверки?
Я запутался в том, что многие фреймворки / разработчики занимаются этим. Они все не правы или я упускаю точку?
Edit:
Я знаю, что также должна быть проверка на стороне клиента. Это другой мяч в моем мнении. Если у вас есть какие-либо комментарии по этому поводу и способы борьбы с такого рода вещами, просьба предоставить.