Передача форм по сравнению с необработанным вводом на сервисный уровень
Лучше ли проверять форму и передавать отфильтрованные входные данные на сервисный уровень или передавать необработанные входные данные на сервисный уровень, а сервис проверяет входные данные (с экземпляром формы или без него)?
Очевидно, что если это последнее, контроллеру все еще требуется доступ к форме, чтобы ее можно было отправить в представление для рендеринга. Если это так, вы бы просто получили доступ к форме через службу ($service->getRegistrationForm())?
Смотрите также:
1 ответ
Сама форма должна обрабатывать проверку, у ZF2 есть методы на Form
класс, который позволяет это.
В действии на контроллере, который ожидает какие-то данные от формы, я первым делом проверяю форму ($form->isValid()
). Если форма недействительна, контроллер будет обрабатывать это немедленно. Обычно это включает в себя прыжки прямо к возвращению ViewModel
с формой (которая теперь содержит данные + результаты проверки), чтобы пользователь мог видеть любые ошибки проверки.
Я не понимаю, почему вы пошли дальше, не проверив, есть ли у вас действительные данные или данные, которые, как вы знаете, являются недействительными. Фактически данные могут даже быть вредоносными (CSRF, который обрабатывается проверкой формы).
По сути, проблема передачи необработанных и отфильтрованных данных никогда не возникает.