не сущностями, вернее не обязательно ими, а объектами-значениями
это сделает структуру более гибкой и прогнозируемой, но одновременно и усложнит
объекту в отличии от литерала можно добавить поведение
например при смене пароля сразу его хэшировать в методе объекта-значения а не в сущьности или контроллерах/сервисах
получаем всегда валидное значение вместо валидации потенциально кривой сущности
решать тебе
(Добавление)
вспомнил пример
надо было при выводе id заказа добавлять букву префиксом в зависимости от филиала
типа A100500
можно сделать это в гетере
тогда не получится $order->getId() === 100500
можно сделать разные гетеры типа getId(), getPrefixId()
но надо всегда об этом помнить, не сложно но как-то ...
а можно id сделать объектом и реализовать ему __toString
подмешали поведение значению
а если придется сделать несколько поведений то в сущьности измываться над литералом становится все сложнее
опять же можно менять структуру значения не меняя ничего кроме класса объекта-значения
сегодня это строка а завтра склеенный массив
(Добавление)
Любую проблему можно решить введением дополнительного уровня абстракции, кроме проблемы слишком большого количества уровней абстракции
https://developerslife[dot]ru/8729 ))
|