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