YAML格式
编辑该页面YAML格式
Symfob娱乐下载ony Yaml组件实现一个选择中定义的特征子集YAML 1.2版规范。
标量
标量的语法类似于PHP的语法。
字符串
YAML的字符串可以包裹在单引号和双引号。在某些情况下,他们也可以非挂牌:
1 2 3 4 5
一个字符串在YAML“YAML使用单引号字符串”“一个双引号字符串YAML”
引用样式非常有用当一个字符串开始或结束与一个或多个相关的空间,因为非上市字符串解析其内容时都修剪。报价时需要字符串包含特殊或保留字符。
使用单引号的字符串时,任何单引号”
在其内容必须翻了一番,达到逃避:
1
'单引号'在使用单引号的字符串的
字符串包含下列字符必须引用。虽然您可以使用双引号,这些角色更方便使用单引号,避免不得不逃避任何反斜杠\
:
:
,{
,}
,(
,]
,,
,&
,*
,#
,吗?
,|
,- - - - - -
,<
,>
,=
,!
,%
,@
,”
双引号风格提供了一种方式来表达任意字符串,通过使用\
转义字符序列。例如,它是非常有用的,当你需要嵌入\ n
或一个Unicode字符的字符串。
1
“一个双引号字符串YAML \ n”
如果字符串包含下列控制字符,它必须与双引号转义:
\ 0
,\ x01
,\ x02
,\ x03
,\ x04
,\ x05
,\ x06
,、一个
,\ b
,\ t
,\ n
,v \
,\ f
,r \
,\ x0e
,\ x0f
,\ x10
,\ x11
,\ x12
,\ * 13
,\ x14英寸
,\连接
,\ x16
,\ x17
,\ x18
,\ x19
,\ x1a
,\ e
,\ x1c
,\ x1d
,\ x1e
,\ x1f
,\ N
,\ _
,L \
,\ P
最后,还有其他情况必须引用的字符串,无论如果你使用单引号或双引号:
- 当字符串
真正的
或假
(否则,它将被视为一个布尔值); - 当字符串
零
或~
(否则,它将被视为一个零
值); - 当字符串看起来像一个数字,比如整数(如。
2
,14
等),浮动(如。2.6
,14.9
(如)和指数数字。12 e7
等)(否则,它将被视为一个数值); - 看起来像一个日期(如当字符串。
2014-12-31
)(否则它会自动转换成一个Unix时间戳)。
当一个字符串包含换行符,您可以使用文字风格,表示由管道(|
),表明该字符串将跨越几行。在文字换行保存:
1 2 3
| \ / / | | \ / | | / / | | | | __
另外,字符串可以用折叠的风格,用>
每个换行,取而代之的是一个空间:
1 2 3 4 5 6 7 8 9 10 11 12 13
>这是一个很长的句子在YAML跨越几行。#这是解析如下:(注意落后\ n)#“这是一个很长的句子,跨越几行YAML。\ n”>这是一个很长的句子在YAML跨越几行。#这是解析如下:(没有落后\ n)#“这是一个很长的句子,跨越几行YAML。”
请注意
注意前两个空间的每一行前面的例子。他们不会出现在结果PHP字符串。
零位
在YAML可以表示null零
或~
。
布尔值
布尔值在YAML表达真正的
和假
。
集合
YAML文件很少被用来描述一个简单的标量。大多数时候,它描述了一个集合。YAML集合可以是一个序列(索引数组在PHP)或一个映射元素(在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
“ob娱乐下载symfony 1.0”:PHP:5.0推动:1.2“ob娱乐下载symfony 1.2”:PHP:5.2推动:1.3
上面的YAML相当于以下PHP代码:
1 2 3 4 5 6 7 8 9 10
(“ob娱乐下载symfony 1.0”= > [“PHP”= >5.0,“推动”= >1.2),“ob娱乐下载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
“ob娱乐下载symfony 1.0”:{PHP:5.0,推动:1.2}“ob娱乐下载symfony 1.2”:{PHP:5.2,推动:1.3}
评论
可以添加评论在YAML加上前缀散列马克(#
):
1 2 3
#评论一条线“ob娱乐下载symfony 1.0”:{PHP:5.0,推动:1.2}#注释的行“ob娱乐下载symfony 1.2”:{PHP:5.2,推动:1.3}
请注意
评论被忽略的YAML解析器和不需要根据当前缩进级别的嵌套在一个集合中。
显式类型
YAML规范定义了一些标签来显式地设置的任何数据类型:
1 2 3 4 5 6 7 8 9 10 11 12 13
数据:#这个值作为字符串解析(这不是变成一个DateTime)start_date:! ! str2002年-12年-14年#解析这个值作为一个浮动数量(这将是3.0,而不是3)价格:浮! !3#这个值解析使用base64编码的二进制数据图片:二进制! !| R0lGODlhDAAMAIQAAP / / 9 / X 17 unp5wzmzgaaaofn515exv Pz7Y6OjuDg4J + fn5OTk6enp 56 enmleeccgggobads =
ob娱乐下载Symfony特定的功能
Yaml组件提供了一些额外的功能,不是官方Yaml规范的一部分,但是很有用的在Symfony应用程序:ob娱乐下载
php /常量!
允许一个PHP常数的值。这个标签需要恒定的完全限定类名作为它的参数:1 2
数据:page_limit:php !/常量App \分页\ Paginator:: PAGE_LIMIT
php /对象!
允许通过的序列化的表示(创建一个PHP对象serialize ()函数),反序列化时解析YAML文件:1 2
数据:my_object:php !/对象“O: 8:“stdClass”: 1:{: 3:“酒吧”;我:2;}”
php /枚举!
允许使用一个PHP枚举的例子。这个标签需要枚举的完全限定类名案例作为它的参数:1 2 3 4 5
数据:#你可以使用类型的枚举的例子……operator_type:php !/枚举App \操作符\ Enum \类型::或#……或者你也可以使用“- >价值”来直接使用BackedEnum案例的价值operator_type:php !/枚举App \操作符\ Enum \类型::- >或价值
6.2
的php /枚举!
标签是在Symfony 6.2中引入的。ob娱乐下载
不支持的YAML特性
下面的YAML Symfony YAML组件不支持的特性:ob娱乐下载
- 多文档(
推荐- - - - - -
和…
标记); - 复杂的映射键和复杂的价值观开始
吗?
; - 标记值作为键;
- 下面的标签和类型:
组! !
,核心! !
,! !对
,seq ! !
,bool ! !
,int ! !
,合并! !
,零! !
,! !时间戳
,价值! !
,! ! yaml
; - 标签(
标签
指令;例子:%的标签!标签:example.com, 2000: app /
)和标签引用(例如:! <标签:example.com, 2000: app / foo >
); - 使用类似于序列语法映射元素(例如:
{foo,酒吧}
;使用{foo: ~,酒吧:~}
相反)。