Передача форм по сравнению с необработанным вводом на сервисный уровень

Лучше ли проверять форму и передавать отфильтрованные входные данные на сервисный уровень или передавать необработанные входные данные на сервисный уровень, а сервис проверяет входные данные (с экземпляром формы или без него)?

Очевидно, что если это последнее, контроллеру все еще требуется доступ к форме, чтобы ее можно было отправить в представление для рендеринга. Если это так, вы бы просто получили доступ к форме через службу ($service->getRegistrationForm())?

Смотрите также:

1 ответ

Сама форма должна обрабатывать проверку, у ZF2 есть методы на Form класс, который позволяет это.

В действии на контроллере, который ожидает какие-то данные от формы, я первым делом проверяю форму ($form->isValid()). Если форма недействительна, контроллер будет обрабатывать это немедленно. Обычно это включает в себя прыжки прямо к возвращению ViewModel с формой (которая теперь содержит данные + результаты проверки), чтобы пользователь мог видеть любые ошибки проверки.

Я не понимаю, почему вы пошли дальше, не проверив, есть ли у вас действительные данные или данные, которые, как вы знаете, являются недействительными. Фактически данные могут даже быть вредоносными (CSRF, который обрабатывается проверкой формы).

По сути, проблема передачи необработанных и отфильтрованных данных никогда не возникает.

Другие вопросы по тегам