Bonjour à tous,

Je viens demander un peu d'aide sur un problème de performance concernant le serializer natif de Symfony

En effet, si j'essaye de sérialiser un tableau d'objet comme ceci :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
$serializedReservations = $this->serializer->serialize($reservations, 'json', ['groups' => 'detailReservationStock', 'enable_max_depth' => true]);
La serialization prend plus de 1s

En revanche si je fais :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
 
$data = [];
foreach ($reservations as $reservation){
	$data['idreservation'] = $reservation->getIdreservation();
	$data['iddetailcommande'] = $reservation->getIddetailcommande()->getIddetailcommande();
	$data['titre'] =$reservation->getIddetailcommande()->getTitre();
	$data['nrserie'] =$reservation->getIdstock()->getNrserie();
	$data['dlc'] =$reservation->getIdstock()->getDlc();
}
$serializedReservations = $this->serializer->serialize($data, 'json', ['groups' => 'detailReservationStock', 'enable_max_depth' => true]);
La sérialisation prend seulement 21 ms !

Alors bien entendu, c'est plus rapide de serialiser un array qu'un objet, mais pourquoi la 1ère méthode est aussi lente alors qu'elle contient exactement les mêmes données (le groupe "detailReservationStock" filtre les mêmes 6 données que je récupère dans le data[]) ?


Si quelqu'un à une idée ou ne serait-ce qu'une piste, je suis preneur. Si je n'arrive pas à régler le problème k'essayerais peut-etre de passer sur JmsSerializer :/

PS : Désolé pour le franglais dans le code, c'est un projet "historique", difficile de tout nettoyer maintenant