@@ -95,16 +95,20 @@ acts as a thin wrapper that simplifies common uses.
95
95
Reading YAML Files
96
96
~~~~~~~~~~~~~~~~~~
97
97
98
- The :method: `Symfony\\ Component\\ Yaml\\ Parser ::parse ` method parses a YAML
98
+ The :method: `Symfony\\ Component\\ Yaml\\ Yaml ::parse ` method parses a YAML
99
99
string and converts it to a PHP array:
100
100
101
101
.. code-block :: php
102
102
103
- use Symfony\Component\Yaml\Parser ;
103
+ use Symfony\Component\Yaml\Yaml ;
104
104
105
- $yaml = new Parser( );
105
+ $value = Yaml::parse(file_get_contents('/path/to/file.yml') );
106
106
107
- $value = $yaml->parse(file_get_contents('/path/to/file.yml'));
107
+ .. caution ::
108
+
109
+ Because it is currently possible to pass a filename to this method, you
110
+ must validate the input first. Passing a filename is deprecated in
111
+ Symfony 2.2, and was removed in Symfony 3.0.
108
112
109
113
If an error occurs during parsing, the parser throws a
110
114
:class: `Symfony\\ Component\\ Yaml\\ Exception\\ ParseException ` exception
@@ -116,71 +120,49 @@ error occurred:
116
120
use Symfony\Component\Yaml\Exception\ParseException;
117
121
118
122
try {
119
- $value = $yaml-> parse(file_get_contents('/path/to/file.yml'));
123
+ $value = Yaml:: parse(file_get_contents('/path/to/file.yml'));
120
124
} catch (ParseException $e) {
121
125
printf("Unable to parse the YAML string: %s", $e->getMessage());
122
126
}
123
127
124
- .. tip ::
125
-
126
- As the parser is re-entrant, you can use the same parser object to load
127
- different YAML strings.
128
-
129
- It may also be convenient to use the
130
- :method: `Symfony\\ Component\\ Yaml\\ Yaml::parse ` wrapper method:
131
-
132
- .. code-block :: php
133
-
134
- use Symfony\Component\Yaml\Yaml;
135
-
136
- $yaml = Yaml::parse(file_get_contents('/path/to/file.yml'));
128
+ .. _components-yaml-dump :
137
129
138
- The :method: `Symfony\\ Component\\ Yaml\\ Yaml::parse ` static method takes a YAML
139
- string or a file containing YAML. Internally, it calls the
140
- :method: `Symfony\\ Component\\ Yaml\\ Parser::parse ` method, but enhances the
141
- error if something goes wrong by adding the filename to the message.
130
+ Objects for Mappings
131
+ ....................
142
132
143
- .. caution ::
133
+ .. versionadded :: 2.7
134
+ Support for parsing mappings as objects was introduced in Symfony 2.7.
144
135
145
- Because it is currently possible to pass a filename to this method, you
146
- must validate the input first. Passing a filename is deprecated in
147
- Symfony 2.2, and will be removed in Symfony 3.0.
136
+ Yaml :ref: ` mappings < yaml-format-collections >` are basically associative
137
+ arrays. You can instruct the parser to return mappings as objects (i.e.
138
+ `` \stdClass `` instances) by setting the fourth argument to `` true ``::
148
139
149
- .. _components-yaml-dump :
140
+ $object = Yaml::parse('{"foo": "bar"}', false, false, true);
141
+ echo get_class($object); // stdClass
142
+ echo $object->foo; // bar
150
143
151
144
Writing YAML Files
152
145
~~~~~~~~~~~~~~~~~~
153
146
154
- The :method: `Symfony\\ Component\\ Yaml\\ Dumper ::dump ` method dumps any PHP
147
+ The :method: `Symfony\\ Component\\ Yaml\\ Yaml ::dump ` method dumps any PHP
155
148
array to its YAML representation:
156
149
157
150
.. code-block :: php
158
151
159
- use Symfony\Component\Yaml\Dumper ;
152
+ use Symfony\Component\Yaml\Yaml ;
160
153
161
154
$array = array(
162
155
'foo' => 'bar',
163
156
'bar' => array('foo' => 'bar', 'bar' => 'baz'),
164
157
);
165
158
166
- $dumper = new Dumper();
167
-
168
- $yaml = $dumper->dump($array);
159
+ $yaml = Yaml::dump($array);
169
160
170
161
file_put_contents('/path/to/file.yml', $yaml);
171
162
172
163
If an error occurs during the dump, the parser throws a
173
164
:class: `Symfony\\ Component\\ Yaml\\ Exception\\ DumpException ` exception.
174
165
175
- If you only need to dump one array, you can use the
176
- :method: `Symfony\\ Component\\ Yaml\\ Yaml::dump ` static method shortcut:
177
-
178
- .. code-block :: php
179
-
180
- use Symfony\Component\Yaml\Yaml;
181
-
182
- $yaml = Yaml::dump($array);
183
-
184
166
Array Expansion and Inlining
185
167
............................
186
168
@@ -192,7 +174,7 @@ representation:
192
174
193
175
{ foo: bar, bar: { foo: bar, bar: baz } }
194
176
195
- The second argument of the :method: `Symfony\\ Component\\ Yaml\\ Dumper ::dump `
177
+ The second argument of the :method: `Symfony\\ Component\\ Yaml\\ Yaml ::dump `
196
178
method customizes the level at which the output switches from the expanded
197
179
representation to the inline one:
198
180
0 commit comments