Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 1f5d980

Browse filesBrowse files
Marcin Chwedziakweaverryan
authored andcommitted
added a note about is* getters support with GetSetMethodNormalizer
1 parent 704d206 commit 1f5d980
Copy full SHA for 1f5d980

File tree

Expand file treeCollapse file tree

1 file changed

+28
-2
lines changed
Filter options
Expand file treeCollapse file tree

1 file changed

+28
-2
lines changed

‎components/serializer.rst

Copy file name to clipboardExpand all lines: components/serializer.rst
+28-2Lines changed: 28 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -62,6 +62,7 @@ exists in your project::
6262
{
6363
private $age;
6464
private $name;
65+
private $sportsman;
6566

6667
// Getters
6768
public function getName()
@@ -74,6 +75,12 @@ exists in your project::
7475
return $this->age;
7576
}
7677

78+
// Issers
79+
public function isSportsman()
80+
{
81+
return $this->sportsman;
82+
}
83+
7784
// Setters
7885
public function setName($name)
7986
{
@@ -84,6 +91,11 @@ exists in your project::
8491
{
8592
$this->age = $age;
8693
}
94+
95+
public function setSportsman($sportsman)
96+
{
97+
$this->sportsman = $sportsman;
98+
}
8799
}
88100

89101
Now, if you want to serialize this object into JSON, you only need to
@@ -92,10 +104,11 @@ use the Serializer service created before::
92104
$person = new Acme\Person();
93105
$person->setName('foo');
94106
$person->setAge(99);
107+
$person->setSportsman(false);
95108

96109
$jsonContent = $serializer->serialize($person, 'json');
97110

98-
// $jsonContent contains {"name":"foo","age":99}
111+
// $jsonContent contains {"name":"foo","age":99,"sportsman":false}
99112

100113
echo $jsonContent; // or return it in a Response
101114

@@ -124,7 +137,7 @@ method on the normalizer definition::
124137
$encoder = new JsonEncoder();
125138

126139
$serializer = new Serializer(array($normalizer), array($encoder));
127-
$serializer->serialize($person, 'json'); // Output: {"name":"foo"}
140+
$serializer->serialize($person, 'json'); // Output: {"name":"foo","sportsman":false}
128141

129142
Deserializing an Object
130143
-----------------------
@@ -136,6 +149,7 @@ of the ``Person`` class would be encoded in XML format::
136149
<person>
137150
<name>foo</name>
138151
<age>99</age>
152+
<sportsman>false</sportsman>
139153
</person>
140154
EOF;
141155

@@ -181,6 +195,18 @@ method on the normalizer definition::
181195
As a final result, the deserializer uses the ``first_name`` attribute as if
182196
it were ``firstName`` and uses the ``getFirstName`` and ``setFirstName`` methods.
183197

198+
Serializing Boolean Attributes
199+
------------------------------
200+
201+
.. versionadded:: 2.5
202+
Support for ``is*`` accessors in
203+
:class:`Symfony\\Component\\Serializer\\Normalizer\\GetSetMethodNormalizer`
204+
was introduced in Symfony 2.5.
205+
206+
If you are using isser methods (methods prefixed by ``is``, like
207+
``Acme\Person::isSportsman()``), the Serializer component will automatically
208+
detect and use it to serialize related attributes.
209+
184210
Using Callbacks to Serialize Properties with Object Instances
185211
-------------------------------------------------------------
186212

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.