YAML格式

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.4,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

YAML格式

根据官方YAMLYAML的网站是“人类友好的数据序列化所有编程语言标准”。

即使YAML格式可以描述复杂的嵌套数据结构,本章只描述了最低的一组特征作为配置文件需要使用YAML格式。

YAML是一个简单的语言来描述数据。PHP,它有一个语法简单类型,如字符串、布尔值、花车、或整数。但与PHP,这使得不同的数组(序列)和散列(映射)。

标量

标量的语法类似于PHP的语法。

字符串

1
一个字符串YAML
1
“YAML singled-quoted字符串”

提示

在一个引用字符串,单引号必须翻了一番:

1
'单引号'在使用单引号的字符串的
1
“一个双引号字符串YAML \ n”

引用样式非常有用当字符串开始或结束与一个或多个相关的空间。

提示

双引号风格提供了一种方式来表达任意字符串,通过使用\转义序列。它是非常有用的,当你需要嵌入\ n或一个unicode字符的字符串。

当一个字符串包含换行符,您可以使用文字风格,表示由管道(|),表明该字符串将跨越几行。在文字换行保存:

1 2 3
| \ / / | | \ / | | / / | | | | __

另外,字符串可以用折叠的风格,用>每个换行,取而代之的是一个空间:

1 2 3 4 5
>这是一个很长的句子,跨越几行YAML但没有回车将呈现为一个字符串。

请注意

注意前两个空间的每一行前面的例子。他们不会出现在结果PHP字符串。

数字

1 2
#一个整数12
1 2
#一个八进制014年
1 2
#一个十六进制0我
1 2
#一个浮点数13.4
1 2
#一个指数数1.2 e + 34
1 2
#无穷inf

零位

在YAML可以表示null~

布尔值

布尔值在YAML表达真正的

日期

YAML使用iso - 8601标准表达日期:

1
2001年-12年-14年t21:59:43.10-05:00
1 2
#简单的日期2002年-12年-14年

集合

YAML文件很少被用来描述一个简单的标量。大多数时候,它描述了一个集合。可以是一个序列或一个映射集合的元素。序列和映射都转换为PHP数组。

序列使用破折号,后跟一个空间:

1 2 3
- - - - - -PHP- - - - - -Perl- - - - - -Python

前面的YAML文件相当于以下PHP代码:

1
数组(“PHP”,“Perl”,“巨蟒”);

映射使用冒号后面跟着一个空间(:)为了纪念每一个键/值对:

1 2 3
PHP:5.2MySQL:5.1Apache:2.2.20

相当于这个PHP代码:

1
数组(“PHP”= >5.2,“MySQL”= >5.1,“阿帕奇”= >“2.2.20”);

请注意

在一个映射,一个关键的可以是任何有效的标量。

结肠之间空格的数量和价值并不重要:

1 2 3
PHP:5.2MySQL:5.1Apache:2.2.20

YAML使用缩进与一个或多个空间来描述嵌套的集合:

1 2 3 4 5 6
“欧宝娱乐app下载地址symfony 1.0”:PHP:5.0推动:1.2“欧宝娱乐app下载地址symfony 1.2”:PHP:5.2推动:1.3

下面的YAML相当于以下PHP代码:

1 2 3 4 5 6 7 8 9 10
数组(“欧宝娱乐app下载地址symfony 1.0”= >数组(“PHP”= >5.0,“推动”= >1.2),“欧宝娱乐app下载地址symfony 1.2”= >数组(“PHP”= >5.2,“推动”= >1.3),);

有一个重要的事情你需要记住当使用缩进在YAML文件:缩进必须与一个或多个空格,但从未与表格

您可以嵌套序列和映射:

1 2 3 4 5 6
“第一章”:- - - - - -介绍- - - - - -事件类型“第二章”:- - - - - -介绍- - - - - -助手

YAML还可以使用流风格的集合,使用显式的指标而不是缩进表示范围。

一个序列可以写成,在方括号(逗号分隔的列表[]):

1
(PHP,Perl,Python)

映射可以写成一个逗号分隔的列表在花括号键/值({}):

1
{PHP:5.2,MySQL:5.1,Apache:2.2.20}

你可以混合和匹配样式来实现更好的可读性:

1 2
“第一章”:(介绍,事件类型)“第二章”:(介绍,助手)
1 2
“欧宝娱乐app下载地址symfony 1.0”:{PHP:5.0,推动:1.2}“欧宝娱乐app下载地址symfony 1.2”:{PHP:5.2,推动:1.3}

评论

可以添加评论在YAML加上前缀散列马克(#):

1 2 3
#评论一条线“欧宝娱乐app下载地址symfony 1.0”:{PHP:5.0,推动:1.2}#注释的行“欧宝娱乐app下载地址symfony 1.2”:{PHP:5.2,推动:1.3}

请注意

评论只是忽视YAML解析器和不需要根据当前的嵌套层次缩进一个集合。

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。