Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
prog:symfony:extensions:jms-serializer [02/11/2019 15:12]
thierry [Annotations dans le fichier de l'Entity]
prog:symfony:extensions:jms-serializer [11/09/2022 17:36] (Version actuelle)
thierry ↷ Page déplacée de prog:symfony:bundles:jms-serializer à prog:symfony:extensions:jms-serializer
Ligne 1: Ligne 1:
-====== jms/​serializer-bundle ======+====== ​Sérialisation avec jms/​serializer-bundle ======
 ===== Installation ===== ===== Installation =====
 <​code>​ <​code>​
Ligne 220: Ligne 220:
  
 </​code>​ </​code>​
 +==== Autres Annotations ====
 +  * [[http://​jmsyst.com/​libs/​serializer/​master/​reference/​annotations]]
 +
 +==== Utiliser les evenements ====
 +On  peut utiliser les evenements : 
 +  * **serializer.pre_serialize** : l'​évènement est de type  ''​JMS\Serializer\EventDispatcher\PreSerializeEvent''​ et permet de changer le type de l'​objet à sérialiser. Il est également possible d'​accéder aux données de l'​objet à sérialiser,​ ainsi qu'au visiteur (objet utilisé pour parcourir l'​objet à sérialiser). ​
 +  * **serializer.post_serialize** : l'​évènement est de type  ''​JMS\Serializer\EventDispatcher\ObjectEvent''​ et permet de modifier le résultat de la sérialisation de l'​objet.
 +  * **serializer.pre_deserialize** : l'​évènement est de type  ''​JMS\Serializer\EventDispatcher\PreDeserializeEvent''​ et permet de modifier les données soumises à l'​application et/ou modifier le type de l'​objet à obtenir après désérialisation.
 +  * **serializer.post_deserialize** : l'​évènement est de type  ''​JMS\Serializer\EventDispatcher\ObjectEvent''​ et permet de faire des manipulations sur l'​objet désérialisé comme de la validation ou ajouter des informations à l'​objet qui pourrait provenir d'un service (API) externe par exemple.
 +
 +
 +Plus d'​infos : [[https://​openclassrooms.com/​fr/​courses/​4087036-construisez-une-api-rest-avec-symfony/​4302366-allez-plus-loin-avec-jmsserializer#/​id/​r-4302459]]
 +==== Utiliser un Handler ====
 +C'est a dire créer un méthode qui sera appelée <<à la place>>​ de la méthode ''​serialize''​ ou ''​deserialize''​.\\
 +Ce qui laisse la maîtrise totale de la sérialisation ou dé-sérialisation...
 +
 +Plus d'​infos : [[https://​openclassrooms.com/​fr/​courses/​4087036-construisez-une-api-rest-avec-symfony/​4302366-allez-plus-loin-avec-jmsserializer#/​id/​r-4302489]]
 +====== Voir aussi ======
 +  * [[https://​symfony.com/​doc/​current/​serializer.html|Doc officielle sur le sérialiseur inclus dans Symfony]]
 +  * [[prog:​symfony:​bundles:​jms-serializer-bundle]]
 +
 +
 +