Русское сообщество разработки на PHP-фреймворке Laravel.
Ты не вошёл. Вход тут.
Я привык создавать в моделях статические методы для типичных операциями над этими сущностями:
Class Book extends Model
{
public static function createBook(Collectin $data) : Book {...}
public static function updateBook(Book $book, Collectin $data) {...}
}
В методах расположена логика присвоения данных, вызов различных сопутствующих действий, которые всегда должны выполнятся при совершении таких операций. Например инвалидация кеша или отправка уведомлений.
Но есть ощущение, что это не совсем правильный подход, поскольку, на модель накладывается много обязанностей.
В чем проблема такого подхода? Как сделать правильнее? Где должна размещаться логика внешних операций, которые должны обязательно выполнится при некоторых действиях над моделью?
Не в сети
Модели должны быть тонкими.
Можно заюзать репозитории или еще лучше будет всю эту логику вынести в отдельный сервис.
Не в сети