From 6f37287d63442a092ff113d8a4a333b9205e5593 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Gr=C3=A9gory=20Quatannens?= Date: Fri, 21 Feb 2014 14:00:56 +0100 Subject: [PATCH] fixing build errors --- components/serializer.rst | 36 ++++++++++++++++++++++++++++++++++++ 1 file changed, 36 insertions(+) diff --git a/components/serializer.rst b/components/serializer.rst index 58378387c..0e02146a9 100644 --- a/components/serializer.rst +++ b/components/serializer.rst @@ -10,6 +10,9 @@ Le Composant Serializer Pour faire cela, le composant Serializer suit le schéma simple suivant. +.. _component-serializer-encoders: +.. _component-serializer-normalizers: + .. image:: /images/components/serializer/serializer_workflow.png Comme vous pouvez le voir sur l'image ci-dessus, un tableau est utilisé @@ -119,6 +122,39 @@ nécessite trois paramètres : 2. Le nom de la classe dans laquelle sera décodée l'information 3. L'encodeur utilisé pour convertir l'information en tableau +Changer les noms de méthode des attributs qui contiennent un underscore +----------------------------------------------------------------------- + +.. versionadded:: 2.3 + La méthode :method:`GetSetMethodNormalizer::setCamelizedAttributes` + a été ajoutée dans Symfony 2.3. + +Parfois, les noms de propriétés du contenu sérialisé contiennent un underscore +(par exemple ``first_name``). Normalement, ces attributs utiliseront des getters et +setters comme ``getFirst_name``, alors que la bonne méthode est ``getFirstName``. Pour +changer ce comportement, utilisez la méthode +:method:`Symfony\\Component\\Serializer\\Normalizer\\GetSetMethodNormalizer::setCamelizedAttributes` +dans la définition du normaliseur:: + + $encoder = new JsonEncoder(); + $normalizer = new GetSetMethodNormalizer(); + $normalizer->setCamelizedAttributes(array('first_name')); + + $serializer = new Serializer(array($normalizer), array($encoder)); + + $json = <<deserialize($json, 'Acme\Person', 'json'); + +Comme résultat final, le désérialiseur utilise l'attribut ``first_name`` +comme s'il était ``firstName`` et utilise les méthodes ``getFirstName`` et ``setFirstName``. + JMSSerializationBundle ----------------------