
#programowanie #php #serializacja #json #symfony #symfony4 #doctrine #orm
Siema phpmirki,
piszę API RESTowe w Symfony 4 i za pomocą Doctrine pobieram sobie z bazy danych listę obiektów klasy
(dzięki wykopowy edytor za obcięcie indentów)
Rozumiem, że nie ma lepszego sposobu niż implementacja JsonSerializable i własnych metod serializacji? Co w przypadku dużych zagnieżdżeń (np.
Da się to jakoś "ładnie" rozwiązać?
Siema phpmirki,
piszę API RESTowe w Symfony 4 i za pomocą Doctrine pobieram sobie z bazy danych listę obiektów klasy
ClassA, która wśród swoich pól prywatnych ma jedno pole typu ArrayCollection i teraz chcę zwrócić wszystko jako JSON, aby miało to strukturę mniej więcej [
{
"id": 1,
"name" : "Blabla",
"ClassB" : [{
"id": 9,
"name": "Urabura",
"status": 0
} { ... }],
{ ... }
](dzięki wykopowy edytor za obcięcie indentów)
Rozumiem, że nie ma lepszego sposobu niż implementacja JsonSerializable i własnych metod serializacji? Co w przypadku dużych zagnieżdżeń (np.
ClassB agreguje ClassC, która z kolei agreguje ClassD)? Co w przypadku, gdy w niektórych akcjach chcę wchodzić głębiej w każdą kolejną agregację, a w innych nie (np. wystarczy mi id i name, bez danych o ClassB)?Da się to jakoś "ładnie" rozwiązać?
- Najlepsze
- Wszystkie komentarze







JsonSerializableto najprostsza metoda. Inna opcja to użycie dedykowanej libki, jak JMSSerializerBundle.Może ja coś źle zaprojektowałem i nie powinno się robić takich zagnieżdżeń wielokrotnych? Bo w niektórych widokach, w których będe używał konkretnych obiektów nie będę potrzebował ich wszystkich składowych więc wydaje mi się bez sensu zwracanie ich z serwera i chciałbym mieć wpływ na to