Макс: К сожалению, не имею практического опыта решения подобной проблемы касаемо DDD подхода. Можно создать фабрику, которая на входе будет получить данные из доктрины (можно сущности или простой массив) и на выходе вернет AR без ruleId у Violation. Так приложение "отвяжется" от релиционной модели.
Можно в статической переменной, можно в обычном приватном свойстве, так как DI контейнер создает 1 экземпляр класса для сервиса (если, конечно, не используется самописная фабрика для сервиса).
Сергей Протько: Можно сказать и так, только мапперы применяются к строго заданным полям сущностей. То есть нет поиска как свойство установить (через сеттер или через магический метод или как-то еще), а оно устанавливается "вручную".
Дело еще в том, что в нашем проекте структуры данных вложенные, а это усложняет использование Symfony serializer. В целом это можно было победить, конечно, но коллективным разумом мы приняли решение пойти своим путем. Пока еще идем)
Сергей Протько: насчет ObjectNormalizer-а полностью согласен - без него будет работать достаточно быстро.
В opensource пока нет планов выкладывать, так как сама реализация серализатора не до конца внедрена во всем проекте. На данный момент каждая сущность обрабатывается своим набором мапперов, так что это занимает опреденное время разработки и тестирования.
Преимущество тут только одно - скорость. Если json/xml представление довольно велико, то, в нашем случае, JMS serializer мог тратить до 300мс на преобразование данных.
Если работа ведется лишь с небольшими сущностями, то JMS/Symfony serializer прекрасно подойдет.