Différences
Ci-dessous, les différences entre deux révisions de la page.
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]] | ||
+ | |||
+ | |||
+ | |||