Юра
Я просто все никак не мог понять что блин не так
Юра
А потом вспомнил что последние года три пишу чистые SPA
Юра
И мне от доктрины нужны тупые геттеры тупые сеттеры
Юра
Если у модели нет геттеров как мне вообще сделать круд?
Юра
Юра
что это вообще за хрень
Юра
Это больше похоже на UserManagmentService
Юра
чем на модель
Юра
как мне получить данные вообще из БД?
Юра
Rich entities should represent behavior, not data, therefore they should be valid even after a __construct() call.
А что тогда представляет данные?
Юра
Короче больше вопросов чем ответов
Anonymous
да куда вы ДТО передаете вообще
Maxim Kainov
Anonymous
из дто данные в энтити передаются, сам дто нет
Maxim Kainov
Anonymous
из дто достаешь
Maxim Kainov
А в ентити как поместить
Anonymous
при создании энтити в транзакции?)
Anonymous
создаешь инстанс энтити с данными из дто?
Maxim Kainov
Anonymous
ну да
Maxim Kainov
Ну так и скажи епт
Anonymous
а как еще ты создавал бы инстанс энтити, кроме как через new?
Anonymous
можно
Maxim Kainov
Как?
Anonymous
смотря какие данные менять хочешь. уникальные ключи? связи с другими сущностями?
Maxim Kainov
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
Maxim Kainov
Сергей
с новыми силами, да ?))
Anonymous
Maxim Kainov
Какой то хреновый пример )
Anonymous
Уж простите)))
Maxim Kainov
Короче, не понятно, как ты будешь данные менять без сеттеров )
Anonymous
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
Ну интересно
Anonymous
Юра
Да только как тут рест апи сделать
Maxim Kainov
Maxim Kainov
Юра
Например метод patch который позволяет обновить часть полей любую
Anonymous
Anonymous
Юра
Может вообще рест не использовать тогда
Юра
Оно не ложится на дто
Maxim Kainov
))
Юра
ДДД в туалет ходить не запрещает хоть?
Юра
Я приведу конкретный пример из бизнеса
Anonymous
А если очень надо - так же с дто. И конкретные данные, а не "любую часть сущности"
Anonymous
Если у тебя методы могут что угодно обновлять, это говнокод
Юра
Есть обьект фин транзакция
Юра
Ок всё закрыли от прямого доступа
Юра
Все инкапсулировано за всякими ричьметодами
Юра
Ну потом бизнес требует роль суперадмин
Юра
И чтобы он мог менять поля вручную, эро реальный кейс на работе
Юра
И чё делать