Symfony et serialization avec JMS serializer

  • View
    1.277

  • Download
    1

Embed Size (px)

Text of Symfony et serialization avec JMS serializer

  • Symfony2: Srialisation

    SfPot 12/06 Samuel ROZE

  • SerializerAbstraction du format de sortie et dentre

    Composant Serializer

    Srialisation et dsrialisation

    Fonctionnalits limites

  • JMS SerializerJMSSerializerBundle

    (D)srialisation

    JSON

    XML

    YAML

  • JMS Serializer Les groupes de srialisation

    Comment retourner des

    attributs diffrents en fonction du context ?

  • JMS Serializer Les groupes de srialisation

    Srialisation dun User

    Intrt de Media:user ?

    Srialisation dun Media

    Intrt de User:medias ?

  • JMS Serializer Les groupes de srialisation

    1. Configuration des groupes via annotations

    2. Srialisation avec un des groupes dfinis

    3. Srialisation voulue

  • JMS Serializer Le versioning

    Faire co-habiter diffrentes

    versions dune mme entit ?

  • JMS Serializer Le versioning

    Configuration simple Configuration avec le accessType

  • JMS Serializer Le versioning

    NB: Utilise version_compare

    Srialisation avec context de version

  • JMS Serializer Custom handlers

    Comment srialiser la main un type

    priv ?

  • JMS Serializer Custom handlers

    FileEntry gre le stockage de nos fichiers, sur diffrents providers

    (local, ftp, cdn, )

  • JMS Serializer Custom handlers

    Ajout de lhandler via services de Symfony

  • JMS Serializer Custom handlers

    Un objet FileEntry devient une chaine de caractres la srialisation

  • JMS Serializer (De)serialize events

    Accs aux donnes

    Avant dsrialisationpre_serialize

    Aprs dsrialisationpost_serialize

    Avant srialisationpre_deserialize

    Aprs srialisationpost_deserialize

  • JMS Serializer (De)serialize events

    Problmatique: retourner une thumbnail optimise pour le

    client

    Avoir accs la requte client

    Avoir notre thumbnailManager

    Pouvoir modifier lentit avant la srialization

  • JMS Serializer (De)serialize events

    Cration du subscriber JMS, grce au tag jms_serializer.event_subscriber

    Ajout du subscriber via le builder

  • JMS Serializer (De)serialize events

    Si le paramtre deviceWidth est dans la requte, on rcupre le thumbnail le plus optimis pour le client,

    qui sera srialis

  • JMS Serializer (De)serialize events

    De nombreuses applications possibles :

    Transformation de donnes sensibles

    Cartes bleues

    Adresses email

    Modifications diverses

    Gnration dURLs

    .

  • JMS Serializer Intgration avec FOSRestBundle

    Groupes de srialisation Versioning

    Configuration gnrale fos_rest.serializer.version

    Format version listener fos_rest.format_listener.media_type.version_regex

    /(v|version)=(?P[0-9\.]+)/'

  • Merci tous !