Юра
Я просто все никак не мог понять что блин не так
Юра
А потом вспомнил что последние года три пишу чистые SPA
Юра
И мне от доктрины нужны тупые геттеры тупые сеттеры
Юра
Если у модели нет геттеров как мне вообще сделать круд?
Юра
Юра
что это вообще за хрень
Юра
Это больше похоже на UserManagmentService
Юра
чем на модель
Юра
как мне получить данные вообще из БД?
Юра
Rich entities should represent behavior, not data, therefore they should be valid even after a __construct() call. А что тогда представляет данные?
Юра
Короче больше вопросов чем ответов
Maxim Kainov
Если у модели нет геттеров как мне вообще сделать круд?
Передавать дто в ентити, наверное. Но чем это принципиально от геттеров и сеттеров отличается. Разве что неудобством.
Anonymous
да куда вы ДТО передаете вообще
Anonymous
из дто данные в энтити передаются, сам дто нет
Anonymous
из дто достаешь
Maxim Kainov
А в ентити как поместить
Anonymous
при создании энтити в транзакции?)
Anonymous
создаешь инстанс энтити с данными из дто?
Maxim Kainov
Anonymous
ну да
Maxim Kainov
Ну так и скажи епт
Anonymous
а как еще ты создавал бы инстанс энтити, кроме как через new?
Maxim Kainov
а как еще ты создавал бы инстанс энтити, кроме как через new?
Не важно. То есть, после создания ентити нельзя поменять в ней данные?
Anonymous
можно
Maxim Kainov
Как?
Anonymous
смотря какие данные менять хочешь. уникальные ключи? связи с другими сущностями?
Maxim Kainov
Имя фамилия год рождения
Anonymous
class User public function updateCredentials(string $someData): User { $this->credentialsData = $someData; return $this; } class Service public function updateUser(User $user, DTO $data): void { $user->updateCredentials($data->getSomeData()); $this->em->flush(); }
Сергей
с новыми силами, да ?))
Maxim Kainov
Какой то хреновый пример )
Anonymous
Уж простите)))
Maxim Kainov
Короче, не понятно, как ты будешь данные менять без сеттеров )
Maxim Kainov
Апдейтом бля
Ты не ругайся
Maxim Kainov
Не можешь объяснить
Anonymous
Да уже надоело это обсуждать сто первый раз, у всех я так понимаю свои подходы и объяснять без конкретных примеров и технических требований бессмысленно )
Maxim Kainov
Простое техническое требование поменять данные у ентити ))
Anonymous
Технические требования к оформлению кода и практикам
Maxim Kainov
Поменять фио и дату рождения бзера )
Anonymous
Поменять фио и дату рождения бзера )
Я тебе написал как поменять
Anonymous
Апдейт флаш
Maxim Kainov
Что за credentialsData
Maxim Kainov
Надо фио поменять
Anonymous
Просто дто с любым количеством полей
Maxim Kainov
То есть, если тебе фио надо поменять это одно дто. Если фио и дату рождения поменять, это другое дто, так?
Юра
Ага ещё спроси как вывести поля юзера в админке )
Anonymous
class CredentialsData string $firstName; string $middleName; string $lastName; //геттеры для этих полей
Юра
Геттер это говнокод всё. Крутись как хочешь
Maxim Kainov
И сколько таких дто у тебя будет?
Юра
Простой сериалайз превращается в какой-то танец с бубном
Юра
Вообщем вот честно непонятно зачем это все нужно
Maxim Kainov
Получается, у тебя в сущности будут методы updateFio, updateFioAndBirthDate и т.д. Так что ли?
Maxim Kainov
Ну интересно
Юра
Да только как тут рест апи сделать
Maxim Kainov
Да.
И в чем профит
Юра
Например метод patch который позволяет обновить часть полей любую
Anonymous
Получается, у тебя в сущности будут методы updateFio, updateFioAndBirthDate и т.д. Так что ли?
Нет, можно просто update() и набор полей с дефолт нулл. Но это годметод и говно редкостное
Юра
Может вообще рест не использовать тогда
Юра
Оно не ложится на дто
Maxim Kainov
))
Юра
ДДД в туалет ходить не запрещает хоть?
Юра
Я приведу конкретный пример из бизнеса
Anonymous
А если очень надо - так же с дто. И конкретные данные, а не "любую часть сущности"
Anonymous
Если у тебя методы могут что угодно обновлять, это говнокод
Юра
Есть обьект фин транзакция
Юра
Ок всё закрыли от прямого доступа
Anonymous
Оно не ложится на дто
Ты просто не умеешь правильно реализовывать
Юра
Все инкапсулировано за всякими ричьметодами
Юра
Ну потом бизнес требует роль суперадмин
Юра
И чтобы он мог менять поля вручную, эро реальный кейс на работе
Юра
И чё делать