Обычные Entity не обязывают переопределять конструктор и серилизатор для поддержки функционала сохранения доктриной. Хотелось чтобы мои работали похожим с доктриной способом.
Так как наш проект уже завязан с doctrine, можно просто использовать её движок аннотаций doctrine/annotations (не забыть указать пакет в composer.json явно)
Help: https://www.doctrine-project.org/projects/doctrine-annotations/en/1.13/custom.html#custom-annotation-classes
Создаем Аннотации @JsonEntity, @JsonEntity\Field Вешаем листенер на PostLoad например, который для каждого класса под аннотацией заберет список сериализуемых атрибутов, и десериализует их.
Не уверен, что он сможет создать обратные сериализаторы и инъектировать их в аннотированную энтити. А события preSerialize нету. да и postLoad походе lifecycleCallback, а не event.
В общем интересная идея на реализацию, но непростая