Size: a a a

2021 March 22

AK

Anton K. in symfony
Павел Г.
Просто есть стиль создания сущностей и vo только через конструкторы и именнованные конструкторы. Тем самым сущность не бывает в невалидном состоянии, в отличии от наполнения через сеттер
null gender тоже имеет место быть и являться валидным. конечно от условий зависит
источник

ПГ

Павел Г. in symfony
И он более верный, если говорить о жесткости
источник

ПГ

Павел Г. in symfony
Anton K.
null gender тоже имеет место быть и являться валидным. конечно от условий зависит
Если есть такое в БЛ то почему бы нет. Если же нет - это невалидная сущность
источник

VM

Volodymyr Melko in symfony
Anton K.
но опять же тогда надо будет либо в entity конвертить руками, либо писать кастомный entity field type. я б такого не городил для таких простых вещей
а никто и не говорит, что это нужно городить в простыш случаях.
Но представь, что это не форма в профиле на дейтинг сайте, а система обмена данными между клиниками, больницами, докторами, страховыми

у тебя работа с большим количеством сторонних систем. Гдето пол приходит в виде единицы и нолика, гдето строкой m/f
гдето еще какими-то константами, где-то булев фложок isMale
Что ты будешь писать у себя?

намного проще в таком случае у себя иметь нормальную бъектную модель и под каждую систему свои мапперы\нормалайзеры
источник

AK

Anton K. in symfony

if ($item['gender'] === 1) {
   $entity->setGender($entity::GENDER_MALE);
} else ...


против

if ($item['gender'] === 1) {
   $entity->setGender(Gender::male());
} else ...
источник

AK

Anton K. in symfony
хотя да, наверное я просто уперся в простоту задачи. с чем-то посложнее VO норм, сам юзаю для всяких адресов/координат
источник

ПГ

Павел Г. in symfony
Anton K.

if ($item['gender'] === 1) {
   $entity->setGender($entity::GENDER_MALE);
} else ...


против

if ($item['gender'] === 1) {
   $entity->setGender(Gender::male());
} else ...
В сущности меньше кода, за который она не отвечает
источник

SP

Sergey Protko in symfony
Volodymyr Melko
а никто и не говорит, что это нужно городить в простыш случаях.
Но представь, что это не форма в профиле на дейтинг сайте, а система обмена данными между клиниками, больницами, докторами, страховыми

у тебя работа с большим количеством сторонних систем. Гдето пол приходит в виде единицы и нолика, гдето строкой m/f
гдето еще какими-то константами, где-то булев фложок isMale
Что ты будешь писать у себя?

намного проще в таком случае у себя иметь нормальную бъектную модель и под каждую систему свои мапперы\нормалайзеры
у тебя будет большое множество адаптеров для каждой системы которая будет приводить все это добро к чему-то что ближе к FHIR
источник

VM

Volodymyr Melko in symfony
Anton K.

if ($item['gender'] === 1) {
   $entity->setGender($entity::GENDER_MALE);
} else ...


против

if ($item['gender'] === 1) {
   $entity->setGender(Gender::male());
} else ...
$entity->setGender(Gender::fromInt($item['gender']));
источник

AK

Anton K. in symfony
Volodymyr Melko
$entity->setGender(Gender::fromInt($item['gender']));
fromInt нельзя, так как у кого-то будет не 0 и 1, а 1 и 2. или 10 и 20
источник

SP

Sergey Protko in symfony
Volodymyr Melko
$entity->setGender(Gender::fromInt($item['gender']));
$human->genderTransitioning(...)
источник

SP

Sergey Protko in symfony
где там мем с винипухом
источник

ПГ

Павел Г. in symfony
Sergey Protko
$human->genderTransitioning(...)
а что в точках?
источник

SP

Sergey Protko in symfony
значение какое-то.
источник

VM

Volodymyr Melko in symfony
Anton K.
fromInt нельзя, так как у кого-то будет не 0 и 1, а 1 и 2. или 10 и 20
если мы говорим о нескольких источниках, то есть смысл $item сначала нормализировать
или же делегировать создание в фабрику, где под каждый источник своя имплементация
источник

SP

Sergey Protko in symfony
вы ж понимаете что до того места где вы дергаете этот сеттер должны быть все преобразования данных?
источник

AK

Anton K. in symfony
Volodymyr Melko
если мы говорим о нескольких источниках, то есть смысл $item сначала нормализировать
или же делегировать создание в фабрику, где под каждый источник своя имплементация
не могу понять, почему надо нормализовать в int, чтобы потом прийти все равно к константам
источник

ПГ

Павел Г. in symfony
Sergey Protko
вы ж понимаете что до того места где вы дергаете этот сеттер должны быть все преобразования данных?
Не совсем понятно о чем речь и каких преобразованиях.
источник

VM

Volodymyr Melko in symfony
Anton K.
не могу понять, почему надо нормализовать в int, чтобы потом прийти все равно к константам
ну я fromInt написал без оглядки на несколько источников
дописал потом ниже =)
источник

AK

Anton K. in symfony
Volodymyr Melko
ну я fromInt написал без оглядки на несколько источников
дописал потом ниже =)
я понял. я тоже ниже написал, что смысл нормализовать в 0 и 1, чтобы потом дернуть fromInt
источник