YAML格式
大多数在symfony的配置文件是YAML格式。欧宝娱乐app下载地址根据官方YAMLYAML的网站是“人类友好的数据序列化所有编程语言标准”。
YAML是一个简单的语言来描述数据。像PHP,它有一个语法简单类型,如字符串、布尔值、花车、或整数。但与PHP,这使得不同的数组(序列)和散列(映射)。
本节描述最低的一组特性,您将需要使用YAML symfony的配置文件格式,尽管YAML格式的描述更复杂的嵌套数据结构。欧宝娱乐app下载地址
标量
标量的语法类似于PHP的语法。
字符串
YAML中的字符串
“YAML singled-quoted字符串”
提示
在一个引用字符串,单引号”
必须翻了一番:
“一个使用单引号字符串单引号“”
“一个双引号字符串YAML \ n”
引用样式非常有用当字符串开始或结束与一个或多个相关的空间。
提示
双引号风格提供了一种方式来表达任意字符串,通过使用\
转义序列。它是非常有用的,当你需要嵌入\ n
或一个unicode字符的字符串。
当一个字符串包含换行符,您可以使用文字风格,表示由管道(|
),表明该字符串将跨越几行。在文字换行保存:
| \ / / | | \ / | | / / | | | | __
另外,字符串可以用折叠的风格,用>
每个换行,取而代之的是一个空间:
>这是一个很长的句子,跨越几行YAML但没有回车将呈现为一个字符串。
请注意
注意前两个空间的每一行前面的例子。他们不会出现在结果PHP字符串。
数字
12 #一个整数
#一个八进制014
#十六进制0 xc
# 13.4浮动
#一个指数1.2 e + 34
#无穷inf
零位
在YAML可以表示null零
或~
。
布尔值
布尔值在YAML表达真正的
和假
。
日期
YAML使用iso - 8601标准表达日期:
2001 - 12 - 14 - t21:59:43.10凌晨
#简单日期2002-12-14
集合
YAML文件很少被用来描述一个简单的标量。大多数时候,它描述了一个集合。集合的元素可以是一个序列或映射。序列和映射都转换为PHP数组。
序列使用破折号,后跟一个空间(- - - - - -
):
- PHP Perl Python
这相当于以下PHP代码:
数组(“PHP”,“Perl”,“巨蟒”);
映射使用冒号后面跟着一个空间(:
)为了纪念每一个键/值对:
Apache MySQL PHP: 5.2: 5.1: 2.2.20
相当于以下PHP代码:
数组(“PHP”= >5.2,“MySQL”= >5.1,“阿帕奇”= >“2.2.20”);
请注意
在一个映射,可以是任何有效的YAML标量的关键。
结肠和价值之间空格的数量并不重要,只要有至少一个:
Apache MySQL PHP: 5.2: 5.1: 2.2.20
YAML使用缩进与一个或多个空间来描述嵌套的集合:
“欧宝娱乐app下载地址symfony 1.0”: PHP: 5.0推动:1.2“symfony 1.2”: PHP: 5.2推动:1.3
这个YAML相当于以下PHP代码:
数组(“欧宝娱乐app下载地址symfony 1.0”= >数组(“PHP”= >5.0,“推动”= >1.2,),“欧宝娱乐app下载地址symfony 1.2”= >数组(“PHP”= >5.2,“推动”= >1.3,),);
有一个重要的事情你需要记住当使用缩进在YAML文件:缩进必须与一个或多个空格,但从未与表格。
您可以嵌套序列和映射或您可以嵌套序列和映射一样:
“第一章”:-介绍事件类型“第2章”:-介绍帮手
YAML还可以使用流风格的集合,使用显式的指标而不是缩进表示范围。
一个序列可以写成,在方括号(逗号分隔的列表[]
):
(PHP、Perl、Python)
映射可以写成一个逗号分隔的列表在花括号键/值({}
):
{Apache, MySQL, PHP: 5.2: 5.1: 2.2.20}
你也可以混合和匹配样式来实现更好的可读性:
“第一章”:[介绍,事件类型]“第2章”:(介绍,助手)
“欧宝娱乐app下载地址symfony 1.0”: {PHP: 5.0,推动:1.2}“symfony 1.2”: {PHP: 5.2,推动:1.3}
评论
可以添加评论在YAML加上前缀散列马克(#
):
#评论“symfony 1.0”行:{PH欧宝娱乐app下载地址P: 5.0,推动:1.2}#评论的“symfony 1.2”行:{PHP: 5.2,推动:1.3}
请注意
评论只是忽视YAML解析器和不需要根据当前的嵌套层次缩进一个集合。
动态YAML文件
在sy欧宝娱乐app下载地址mfony中,YAML文件可以包含PHP代码解析发生前评估:
1.0版本:< ? php回声函数(“1.0 /版本”)。”\ n”? >1.1版本:“< ?php echo file_get_contents(1.1 /版本)? > "
小心不要混乱的缩进。请记住以下简单的提示当添加PHP代码YAML文件:
的
< ? php? >
语句必须启动线或被嵌入到一个值。如果一个
< ? php? >
语句结束一条线,你需要明确地输出一个新行(“\ n”)。
一个完整的例子
下面的例子说明了YAML语法解释在本节中:
“欧宝娱乐app下载地址symfony 1.0”: end_of_maintenance: 2010-01-01 is_stable:真正的release_manager:“格雷戈勒休伯特”描述:>这项目稳定版本是正确的选择,需要保持很长一段时间。latest_beta: ~ latest_minor: 1.0.20 supported_orms:[推动]档案:{来源:[zip, tgz],沙箱:[zip, tgz]}“symfony 1.2”: end_of_mainten欧宝娱乐app下载地址ance: 2008-11-01 is_stable:真正的release_manager:“费边兰格”描述:>这个稳定版本是正确的选择如果你开始一个新项目。latest_beta:零latest_minor: 1.2.5 supported_orms: -推动原则档案:来源:- zip - tgz沙箱:- zip - tgz
这项工作在Creative Commons许可Attribution-Share都3.0 Unported许可执照。