Der ObjectNormalizer der
Symfony Serializer-Komponente liest per Reflection alle Properties eines Objekts aus und baut daraus ein Array, was für einfache DTOs hervorragend funktioniert. Sobald ein Objekt aber ein Value Object mit eigener interner Struktur ist, eine polymorphe Klassenhierarchie abbildet oder Objekte referenziert, die wiederum aufeinander zeigen, stößt diese generische Reflection-Logik an klare Grenzen. Dieser Artikel zeigt, wie man mit NormalizerInterface und DenormalizerInterface eigene Transformationen schreibt, wie man deren Priorität gegenüber eingebauten Normalizern steuert und wie man Zirkelreferenzen kontrolliert auflöst, statt in eine Endlosschleife zu laufen.