Юра
Типо почему я не стал лидом который в носу ковыряется?
Maxim Kainov
В общем, ты хочешь сделать обертку своеобразную. Это довольно трудоемко, а смысла в этом особого нет.
Юра
Что-то похожее есть у swagger
Юра
https://swagger.io/tools/swagger-codegen/
Вадим
Как это связано )
Я как минимум дал информацию почитать про Anemic Model это будет хорошим стартом понять, что можно код писать по другому
Вадим
Юра
свагер тоже исповедует подход - укажите метаинформацию в одном месте вы все сгенерим сами
Maxim Kainov
Единственный аргумент типа то ооп, а то процедурный стиль
Юра
И кстатит вод представьте что приходит неопытный джун к вам
Maxim Kainov
Но это не аргумент )
Юра
Наверное меньше ошибок он сделать если модели сгенеряться сами
Юра
Чем будет писать
Юра
Он просто добавил поля, типы проставил настройки нужен ди индекс там и т.д.
Юра
И усё
Вадим
Что логику нужно писать в сущностях
он идет вразрез с базовой идеей Объектно Ориентированного Проектирования, который состоит а том, что бы совмещать данные и процесс (поведение)
Вадим
Юра
Невозможно энтити совместить с процессом
Юра
Потому что в энтити нет сервис контейнра и энтити это не сервис
Dmitriy
ох) надо взять попкорн)
Юра
Ща кинотеатры закрыты, развлекаемся как можем )
Maxim Kainov
Dmitriy
просто тема стара как мир и всегда холиварная )
Вадим
Юра
Ну а что тогда может энтити такого без контейнера
Юра
просто мапить данные
Юра
тако у неё предназначение
Юра
тупые геттеры
Юра
тупые сеттеры
Dmitriy
ооооо
Вадим
Dmitriy
до холивара
Dmitriy
3
Dmitriy
2
Dmitriy
1
Dmitriy
поехали
Юра
))))
Юра
что значит управлять
Вадим
Юра
я не пойму что вы хотите от энтити помимо мапинга в БД
Dmitriy
ну например $user->activated();
Вадим
Юра
и возможно какого-то метода который на основе данных возвращает что-то еще типо getFullName()
Юра
ну и ОК пусть будет такой метод
Юра
это никак не мешает той моей тулзе
Dmitriy
$order->nextState(new InProgressOrderStatus($payload));
Юра
добавил тип поля EbtityBuilder и дописал такой метод
Юра
ну ок если понадобилось в nextState что-то изменить вне энтити
Юра
шо делать
Юра
вы скажите это не задача энтити
Юра
А я скажу ну так какого хрена писать в двух местах )
Юра
чтобв потом веселле другим было собирать по крцпицам где у вас логика спрятана?
Юра
о тут в энтити
Юра
а тут в листенере
Юра
а тут еще есть часть к контроллере
Dmitriy
если вне энтити то это доменное событие имхо
Dmitriy
на которое другие домены или отреагируют\ или нет
Maxim Kainov
Я пробовал писать код в ентитях, потом постоянно его приходилось переносить в сервисы. И я подумал, уж лучше сразу его в сервисы писать )
Юра
Тож самое
Юра
В итоге приходится использовать какой-то сервис
Юра
И ты понимаешь что теперь у тебя есть сервис в котором логика и энтити в котором логика и выносишь в одно место
Dmitriy
Dmitriy
я предпочел не выносить за сущность проверки ин прогресс тру и т д
Dmitriy
но это тема отдельного разговора)
Юра
ну что-то конечно может быть в энтити
Maxim Kainov
Может, но лучше не надо )
Вадим
Dmitriy
Dmitriy
или сабскрайбер
Dmitriy
ееее
Dmitriy
😂😂😂😂
Юра
хз короче
Юра
Object-relational mapping
Юра
даже в названии написано просто mapping
Юра
а не Object-relational management