Валидация в контроллере и распределение ролей в MVC?

Почитал несколько похожих вопросов, например Как и где правильно осуществлять валидацию данных в MVC? пишут что валидацией должен заниматься контроллер. Это понятно если валидировать нужно относительную простую информацию типа URL или IP и то если таких проверок много не множить же их в каждом контроллере... Напрашивается вынос в отдельный класс, назовём его Validator и просто подключение его нужных методов в контроллере.

1) К какому типу тогда будет относиться сам класс Validator? Model, Controller или что-то типа Хелпера или Middleware?

2) В системе запрашивают страницу редактирования сотрудника вида domain.com/employer/edit/123 срабатывает класс employer метод edit. Где надо проверить само существование сотрудника № 123? Я сейчас проверяю в модели, т.е. в классе employer методе edit в самом начале. Вроде бы надо вынести в контроллер, но для такой проверки нужна работа с БД, а работа контроллера чисто разруливать запросы. На ум идёт так же только создание класса Validator который с БД будет работать но он сам по себе уже полноценной моделью по сути будет.
  • Вопрос задан
  • 1430 просмотров
Решения вопроса 1
Maksclub
@Maksclub Куратор тега PHP
maksfedorov.ru
В сервисе.

1. Контроллер получает запрос
2. Контроллер создает форму
3. Если форма валидируется -- вызывается метод сервиса
Пример хорошего ООП на Yii2 от Елисеева:
экшн контроллера: https://github.com/ElisDN/yii2-demo-shop/blob/mast...
метод сервиса запрашивает юзера: https://goo.gl/g9Vf9G

4. Рендерится вьюшка
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы