Laravel по-русски

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

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

#1 Хорошие практики (FAQ) » Каковы должны быть границы области обязанностей модели? » 21.02.2018 14:40:10

Sid
Ответов: 1

Я привык создавать в моделях статические методы для типичных операциями над этими сущностями:

Class Book extends Model
{
  public static function createBook(Collectin $data) : Book {...}
  public static function updateBook(Book $book, Collectin $data) {...}
}

В методах расположена логика присвоения данных, вызов различных сопутствующих действий, которые всегда должны выполнятся при совершении таких операций. Например инвалидация кеша или отправка уведомлений.

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

В чем проблема такого подхода? Как сделать правильнее? Где должна размещаться логика внешних операций, которые должны обязательно выполнится при некоторых действиях над моделью?

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