Symfony2:
Sérialisation
SfPot 12/06

Samuel ROZE
Serializer
Abstraction du format de sortie et
d’entrée
Composant Serializer
Sérialisation et désérialisation
Fonctionnalit...
JMS Serializer
JMSSerializerBundle
(Dé)sérialisation
JSON
XML
YAML
JMS Serializer
Les groupes de sérialisation
Comment
retourner des
attributs
différents en
fonction du
context ?
JMS Serializer
Les groupes de sérialisation
Sérialisation
d’un User
Intérêt de
Media:user ?
Sérialisation
d’un Media
Intér...
JMS Serializer
Les groupes de sérialisation
1. Configuration des groupes
via annotations
2. Sérialisation avec un des
grou...
JMS Serializer
Le versioning
Faire co-habiter
différentes
versions d’une
même entité ?
JMS Serializer
Le versioning
Configuration “simple” Configuration avec le “accessType”
JMS Serializer
Le versioning
NB: Utilise “version_compare”
Sérialisation avec context de version
JMS Serializer
Custom handlers
Comment sérialiser
“à la main” un type
“privé” ?
JMS Serializer
Custom handlers
FileEntry gère le stockage de nos
fichiers, sur différents providers
(local, ftp, cdn, …)
JMS Serializer
Custom handlers
Ajout de l’handler via services
de Symfony
JMS Serializer
Custom handlers
Un objet FileEntry devient une chaine de caractères à la sérialisation
JMS Serializer
(De)serialize events
Accès aux données
Avant désérialisation

pre_serialize
Après désérialisation

post_ser...
JMS Serializer
(De)serialize events
Problématique: retourner une
thumbnail optimisée pour le
client
Avoir accès à la requê...
JMS Serializer
(De)serialize events
Création du subscriber JMS, grâce au
tag jms_serializer.event_subscriber
Ajout du subs...
JMS Serializer
(De)serialize events
Si le paramètre
deviceWidth est
dans la requête,
on récupère le
thumbnail le
plus opti...
JMS Serializer
(De)serialize events
De nombreuses applications possibles :
Transformation de données sensibles
Cartes bleu...
JMS Serializer
Intégration avec FOSRestBundle
Groupes de sérialisation Versioning
Configuration générale
fos_rest.serializ...
Merci à tous !
Prochain SlideShare
Chargement dans…5
×

Symfony et serialization avec JMS serializer

828 vues

Publié le

Les fonctionnalités avancées de JMS serializer.

Publié dans : Technologie
0 commentaire
1 j’aime
Statistiques
Remarques
  • Soyez le premier à commenter

Aucun téléchargement
Vues
Nombre de vues
828
Sur SlideShare
0
Issues des intégrations
0
Intégrations
6
Actions
Partages
0
Téléchargements
6
Commentaires
0
J’aime
1
Intégrations 0
Aucune incorporation

Aucune remarque pour cette diapositive

Symfony et serialization avec JMS serializer

  1. 1. Symfony2: Sérialisation SfPot 12/06
 Samuel ROZE
  2. 2. Serializer Abstraction du format de sortie et d’entrée Composant Serializer Sérialisation et désérialisation Fonctionnalités limitées
  3. 3. JMS Serializer JMSSerializerBundle (Dé)sérialisation JSON XML YAML
  4. 4. JMS Serializer Les groupes de sérialisation Comment retourner des attributs différents en fonction du context ?
  5. 5. JMS Serializer Les groupes de sérialisation Sérialisation d’un User Intérêt de Media:user ? Sérialisation d’un Media Intérêt de User:medias ?
  6. 6. JMS Serializer Les groupes de sérialisation 1. Configuration des groupes via annotations 2. Sérialisation avec un des groupes définis 3. Sérialisation voulue
  7. 7. JMS Serializer Le versioning Faire co-habiter différentes versions d’une même entité ?
  8. 8. JMS Serializer Le versioning Configuration “simple” Configuration avec le “accessType”
  9. 9. JMS Serializer Le versioning NB: Utilise “version_compare” Sérialisation avec context de version
  10. 10. JMS Serializer Custom handlers Comment sérialiser “à la main” un type “privé” ?
  11. 11. JMS Serializer Custom handlers FileEntry gère le stockage de nos fichiers, sur différents providers (local, ftp, cdn, …)
  12. 12. JMS Serializer Custom handlers Ajout de l’handler via services de Symfony
  13. 13. JMS Serializer Custom handlers Un objet FileEntry devient une chaine de caractères à la sérialisation
  14. 14. JMS Serializer (De)serialize events Accès aux données Avant désérialisation
 pre_serialize Après désérialisation
 post_serialize Avant sérialisation
 pre_deserialize Après sérialisation
 post_deserialize
  15. 15. JMS Serializer (De)serialize events Problématique: retourner une thumbnail optimisée pour le client Avoir accès à la requête client Avoir notre thumbnailManager Pouvoir modifier l’entité avant la sérialization
  16. 16. JMS Serializer (De)serialize events Création du subscriber JMS, grâce au tag jms_serializer.event_subscriber Ajout du subscriber via le builder
  17. 17. JMS Serializer (De)serialize events Si le paramètre deviceWidth est dans la requête, on récupère le thumbnail le plus optimisé pour le client, qui sera sérialisé
  18. 18. JMS Serializer (De)serialize events De nombreuses applications possibles : Transformation de données sensibles Cartes bleues Adresses email Modifications diverses Génération d’URLs ….
  19. 19. JMS Serializer Intégration avec FOSRestBundle Groupes de sérialisation Versioning Configuration générale fos_rest.serializer.version Format version listener fos_rest.format_listener.media_ type.version_regex ‘/(v|version)=(? P<version>[0-9.]+)/'
  20. 20. Merci à tous !

×