Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Страницы 1
Всем привет. Пишу CRM-систему на Laravel, впервые сталкиваюсь с валидацией большого количества данных. Столкнулся с проблемой при добавлении нового заказа в CRM.
Что необходимо проверять перед добавлением нового заказа:
— Номер телефона. Понятно, что валидацию номера добавляем в StoreOrderRequest.
— Есть ли такой клиент в базе (поиск по номеру). Понятно, что делается Customer::findOrNew().
— Доступен ли в данный момент товар для заказа
— Указан ли адрес доставки (если да, то еще нужно добавить задачу уточнить адрес доставки)
И так далее. Список довольно большой, он будет расширяться по мере разрастания функционала. Но пока что не понимаю, именно с идеологической стороны Laravel, куда именно мне следует запихнуть всю валидацию данных? Понятно, что именно входные данные (Имя клиента, телефон клиента) проверяем в StoreOrderRequest, но куда лучше вынести всю бизнес-логику, как это реализуется?
Есть OrderController, есть public function create(StoreOrderRequest $request){}, но ведь делать контроллер толстым не есть хорошо.
Насколько правильным будет сделать Event нового заказа, а такие параметры, как проверка на ввод адреса доставки, вынести в отдельный Listener и реализовывать бизнес-логику, связанную именно с данным параметром, именно в данном "слушателе"?
Хочется узнать мнение более опытных разработчиков, интересует именно архитектура в данном случае.
Страницы 1