Задать вопрос

Как отделить бизнес-логику?

3 вопроса
  1. Как уйти от толстых моделей? У меня, к примеру, модель User может быть на тысячу строк. Говорят, нужен сервисный слой. Но я не пойму как его организовать на уровне файлов и папок и как это должно примерно выглядеть. Может быть есть примеры кода?
  2. Допустим, я хочу внедрить на сайт сервис PayPal (общается по curl'у c их сервером). В Yii, например, я создавал файл-класс PayPal в папке components и там реализовывал методы. Добавлял в конфиг и потом использовал как Yii::$app->paypal в контроллере и в модели (опять же - бизнес-логика в контроллере и модели). Довольно примитивно. Как мне грамотно создать такой модуль в Laravel. В какой папке? Нужно ли разделать на контракт/реализацию, если реализация всего одна? (опустим, что можно создать единый контракт для всех платёжных систем)
  3. Почему в laravel нет папки Model и модели складываются в App. Знаю, что можно создать самому? Но зачем это сделано. Папка Model — устаревшая структура и есть способ организовать модели по-лучше?
  • Вопрос задан
  • 5620 просмотров
Подписаться 26 Простой 14 комментариев
Решение пользователя Majesko К ответам на вопрос (11)
@Majesko
1. Создать папку Services
2. Выделить части бизнес логики в сервисы
3. Написать сервисы и подключить через Service Provider в Service Container
4. Написать фасады (по желанию)
5. ...
6. PROFIT
Ответ написан