Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 Laravel 5.x » Правильная архитектура при большом кол-ве вводных данных » 01.07.2018 02:17:50

Alexxosipov
Ответов: 3

Всем привет. Пишу CRM-систему на Laravel, впервые сталкиваюсь с валидацией большого количества данных. Столкнулся с проблемой при добавлении нового заказа в CRM.

Что необходимо проверять перед добавлением нового заказа:
— Номер телефона. Понятно, что валидацию номера добавляем в StoreOrderRequest.
— Есть ли такой клиент в базе (поиск по номеру). Понятно, что делается Customer::findOrNew().
— Доступен ли в данный момент товар для заказа
— Указан ли адрес доставки (если да, то еще нужно добавить задачу уточнить адрес доставки)

И так далее. Список довольно большой, он будет расширяться по мере разрастания функционала. Но пока что не понимаю, именно с идеологической стороны Laravel, куда именно мне следует запихнуть всю валидацию данных? Понятно, что именно входные данные (Имя клиента, телефон клиента) проверяем в StoreOrderRequest, но куда лучше вынести всю бизнес-логику, как это реализуется?

Есть OrderController, есть public function create(StoreOrderRequest $request){}, но ведь делать контроллер толстым не есть хорошо.

Насколько правильным будет сделать Event нового заказа, а такие параметры, как проверка на ввод адреса доставки, вынести в отдельный Listener и реализовывать бизнес-логику, связанную именно с данным параметром, именно в данном "слушателе"?

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

Подвал раздела