Size: a a a

2021 April 12

AK

Anton K. in symfony
а что если User::userWith(...)
источник

A

Anthony in symfony
With - это уже не комильфо
Хотите делать with, делайте $user->addSomething()
источник

A

Anthony in symfony
Менеджер - это менеджер. Создание сущности - не его работа
источник

DP

Dmitrii Petiagov in symfony
Я не уверен у меня в голове смутные воспоминания что я что-то подобное видел, но где и как хз. Лично мне сейчас кажется что если менеджер (\Doctrine\ORM\EntityManager) может делать persist и remove то логично создать UserManager extends \Doctrine\ORM\EntityManager который сможет делать create.
Я не на чем не настаиваю. Может кто-то так уже делал или есть другой общепринятый способ сделать то что я хочу, поэтому и спросил.
источник

A

Anthony in symfony
делайте как хотите, но это дичь.
источник

DP

Dmitrii Petiagov in symfony
Понял. Спасибо за совет)
источник

VM

Volodymyr Melko in symfony
так не выйдет без костылей
тебе придется для каждой энтити сетапить своей энтити менеджер, а значит не будут работать связи между ними
источник

VM

Volodymyr Melko in symfony
наверно и с костылями не выйдет =)
источник

A

Anthony in symfony
Основное правило: меньше магии. Трейты __get, _set, __sleep - вот это Г должно оставться за пределами бизнес логики
источник

AK

Anton K. in symfony
что? что не так с with? и with был чисто для примера

User::adminUser();
User::guestUser();
источник

A

Anthony in symfony
Так себе идея. Когда у вас будет 20 ролей, добавите в юзер 20 фэктори методов?
источник

AK

Anton K. in symfony
для 20 юзер ролей наверное просто User::userWithRole(...)
источник

A

Anthony in symfony
А какое отношение к классу Юзера имеет роль?
источник

VM

Volodymyr Melko in symfony
User::admin() / User::guest()

но лучше
new Admin() / new Guest()
источник

Р

Руслан in symfony
В джаве делают по 30 именованных конструкторов на сущность и не парятся
источник

AL

Alexander Lozovsky in symfony
FosUserBundle?
источник

A

Anthony in symfony
не в джаве делают, а в Индии делают. Язык здесь ни при чем.
Если есть необходимость и, к примеру, роль пользователя - не просто поле в сущности пользователя, то делайте Factory
Разгрузите модель, сделаете красиво, сможете контролировать создание кадлого типа записи
источник

AL

Alexander Lozovsky in symfony
С телефона не удобно искать конкретную статью, но у чувака был цикл про ддд и чистую архитектуру, там было и про создание сущностей

https://matthiasnoback.nl/
источник

AL

Alexander Lozovsky in symfony
Года два-три назад.
источник

VM

Volodymyr Melko in symfony
очень сомнительное утверждение
миллион раз уже видел этот бесполезный код, але
UserFactory::createWithEmail($name, $email): User {
   $user = new User();
   $user->setName($name);
   $user->setEmail($email);

   return $user;
}

UserFactory::createWithPhone($name, $phone): User {
   $user = new User();
   $user->setName($name);
   $user->setPhone($phone);
   
   return $user;
}

чем это лучше статического метода в самом юзере?
источник