Thanks to visit codestin.com
Credit goes to github.com

Skip to content

Commit a8c87a5

Browse files
committed
Merge pull request symfony#2178 from WouterJ/split_yaml
Splitted yaml component documentation
2 parents 07b5f5d + 2015c4a commit a8c87a5

File tree

6 files changed

+289
-271
lines changed

6 files changed

+289
-271
lines changed

book/page_creation.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -830,7 +830,8 @@ options of each feature.
830830
three formats (YAML, XML and PHP). Each has its own advantages and
831831
disadvantages. The choice of which to use is up to you:
832832

833-
* *YAML*: Simple, clean and readable;
833+
* *YAML*: Simple, clean and readable (learn more about yaml in
834+
* ":doc:`/components/yaml/yaml_format`");
834835

835836
* *XML*: More powerful than YAML at times and supports IDE autocompletion;
836837

components/map.rst.inc

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,7 @@
8282

8383
* :doc:`/components/templating`
8484

85-
* **YAML**
85+
* :doc:`/components/yaml/index`
8686

87-
* :doc:`/components/yaml`
87+
* :doc:`/components/yaml/introduction`
88+
* :doc:`/components/yaml/yaml_format`

components/yaml/index.rst

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,8 @@
1+
Yaml
2+
====
3+
4+
.. toctree::
5+
:maxdepth: 2
6+
7+
introduction
8+
yaml_format

components/yaml.rst renamed to components/yaml/introduction.rst

Lines changed: 5 additions & 267 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,11 @@ as INI files.
2121
The Symfony2 YAML Component implements the YAML 1.2 version of the
2222
specification.
2323

24+
.. tip::
25+
26+
Learn more about the Yaml component in the
27+
:doc:`/components/yaml/yaml_format` article.
28+
2429
Installation
2530
------------
2631

@@ -207,272 +212,5 @@ representation to the inline one:
207212
foo: bar
208213
bar: baz
209214
210-
The YAML Format
211-
---------------
212-
213-
According to the official `YAML`_ website, YAML is "a human friendly data
214-
serialization standard for all programming languages".
215-
216-
Even if the YAML format can describe complex nested data structure, this
217-
chapter only describes the minimum set of features needed to use YAML as a
218-
configuration file format.
219-
220-
YAML is a simple language that describes data. As PHP, it has a syntax for
221-
simple types like strings, booleans, floats, or integers. But unlike PHP, it
222-
makes a difference between arrays (sequences) and hashes (mappings).
223-
224-
Scalars
225-
~~~~~~~
226-
227-
The syntax for scalars is similar to the PHP syntax.
228-
229-
Strings
230-
.......
231-
232-
.. code-block:: yaml
233-
234-
A string in YAML
235-
236-
.. code-block:: yaml
237-
238-
'A singled-quoted string in YAML'
239-
240-
.. tip::
241-
242-
In a single quoted string, a single quote ``'`` must be doubled:
243-
244-
.. code-block:: yaml
245-
246-
'A single quote '' in a single-quoted string'
247-
248-
.. code-block:: yaml
249-
250-
"A double-quoted string in YAML\n"
251-
252-
Quoted styles are useful when a string starts or ends with one or more
253-
relevant spaces.
254-
255-
.. tip::
256-
257-
The double-quoted style provides a way to express arbitrary strings, by
258-
using ``\`` escape sequences. It is very useful when you need to embed a
259-
``\n`` or a unicode character in a string.
260-
261-
When a string contains line breaks, you can use the literal style, indicated
262-
by the pipe (``|``), to indicate that the string will span several lines. In
263-
literals, newlines are preserved:
264-
265-
.. code-block:: yaml
266-
267-
|
268-
\/ /| |\/| |
269-
/ / | | | |__
270-
271-
Alternatively, strings can be written with the folded style, denoted by ``>``,
272-
where each line break is replaced by a space:
273-
274-
.. code-block:: yaml
275-
276-
>
277-
This is a very long sentence
278-
that spans several lines in the YAML
279-
but which will be rendered as a string
280-
without carriage returns.
281-
282-
.. note::
283-
284-
Notice the two spaces before each line in the previous examples. They
285-
won't appear in the resulting PHP strings.
286-
287-
Numbers
288-
.......
289-
290-
.. code-block:: yaml
291-
292-
# an integer
293-
12
294-
295-
.. code-block:: yaml
296-
297-
# an octal
298-
014
299-
300-
.. code-block:: yaml
301-
302-
# an hexadecimal
303-
0xC
304-
305-
.. code-block:: yaml
306-
307-
# a float
308-
13.4
309-
310-
.. code-block:: yaml
311-
312-
# an exponential number
313-
1.2e+34
314-
315-
.. code-block:: yaml
316-
317-
# infinity
318-
.inf
319-
320-
Nulls
321-
.....
322-
323-
Nulls in YAML can be expressed with ``null`` or ``~``.
324-
325-
Booleans
326-
........
327-
328-
Booleans in YAML are expressed with ``true`` and ``false``.
329-
330-
Dates
331-
.....
332-
333-
YAML uses the ISO-8601 standard to express dates:
334-
335-
.. code-block:: yaml
336-
337-
2001-12-14t21:59:43.10-05:00
338-
339-
.. code-block:: yaml
340-
341-
# simple date
342-
2002-12-14
343-
344-
Collections
345-
~~~~~~~~~~~
346-
347-
A YAML file is rarely used to describe a simple scalar. Most of the time, it
348-
describes a collection. A collection can be a sequence or a mapping of
349-
elements. Both sequences and mappings are converted to PHP arrays.
350-
351-
Sequences use a dash followed by a space:
352-
353-
.. code-block:: yaml
354-
355-
- PHP
356-
- Perl
357-
- Python
358-
359-
The previous YAML file is equivalent to the following PHP code:
360-
361-
.. code-block:: php
362-
363-
array('PHP', 'Perl', 'Python');
364-
365-
Mappings use a colon followed by a space (``:`` ) to mark each key/value pair:
366-
367-
.. code-block:: yaml
368-
369-
PHP: 5.2
370-
MySQL: 5.1
371-
Apache: 2.2.20
372-
373-
which is equivalent to this PHP code:
374-
375-
.. code-block:: php
376-
377-
array('PHP' => 5.2, 'MySQL' => 5.1, 'Apache' => '2.2.20');
378-
379-
.. note::
380-
381-
In a mapping, a key can be any valid scalar.
382-
383-
The number of spaces between the colon and the value does not matter:
384-
385-
.. code-block:: yaml
386-
387-
PHP: 5.2
388-
MySQL: 5.1
389-
Apache: 2.2.20
390-
391-
YAML uses indentation with one or more spaces to describe nested collections:
392-
393-
.. code-block:: yaml
394-
395-
"symfony 1.0":
396-
PHP: 5.0
397-
Propel: 1.2
398-
"symfony 1.2":
399-
PHP: 5.2
400-
Propel: 1.3
401-
402-
The following YAML is equivalent to the following PHP code:
403-
404-
.. code-block:: php
405-
406-
array(
407-
'symfony 1.0' => array(
408-
'PHP' => 5.0,
409-
'Propel' => 1.2,
410-
),
411-
'symfony 1.2' => array(
412-
'PHP' => 5.2,
413-
'Propel' => 1.3,
414-
),
415-
);
416-
417-
There is one important thing you need to remember when using indentation in a
418-
YAML file: *Indentation must be done with one or more spaces, but never with
419-
tabulations*.
420-
421-
You can nest sequences and mappings as you like:
422-
423-
.. code-block:: yaml
424-
425-
'Chapter 1':
426-
- Introduction
427-
- Event Types
428-
'Chapter 2':
429-
- Introduction
430-
- Helpers
431-
432-
YAML can also use flow styles for collections, using explicit indicators
433-
rather than indentation to denote scope.
434-
435-
A sequence can be written as a comma separated list within square brackets
436-
(``[]``):
437-
438-
.. code-block:: yaml
439-
440-
[PHP, Perl, Python]
441-
442-
A mapping can be written as a comma separated list of key/values within curly
443-
braces (``{}``):
444-
445-
.. code-block:: yaml
446-
447-
{ PHP: 5.2, MySQL: 5.1, Apache: 2.2.20 }
448-
449-
You can mix and match styles to achieve a better readability:
450-
451-
.. code-block:: yaml
452-
453-
'Chapter 1': [Introduction, Event Types]
454-
'Chapter 2': [Introduction, Helpers]
455-
456-
.. code-block:: yaml
457-
458-
"symfony 1.0": { PHP: 5.0, Propel: 1.2 }
459-
"symfony 1.2": { PHP: 5.2, Propel: 1.3 }
460-
461-
Comments
462-
~~~~~~~~
463-
464-
Comments can be added in YAML by prefixing them with a hash mark (``#``):
465-
466-
.. code-block:: yaml
467-
468-
# Comment on a line
469-
"symfony 1.0": { PHP: 5.0, Propel: 1.2 } # Comment at the end of a line
470-
"symfony 1.2": { PHP: 5.2, Propel: 1.3 }
471-
472-
.. note::
473-
474-
Comments are simply ignored by the YAML parser and do not need to be
475-
indented according to the current level of nesting in a collection.
476-
477215
.. _YAML: http://yaml.org/
478216
.. _Packagist: https://packagist.org/packages/symfony/yaml

0 commit comments

Comments
 (0)