YAML格式
symfony中的大多数配置文件都是YAML格式的。ob娱乐下载据这位官员说YAML在网站上,YAML是“适用于所有编程语言的人类友好的数据序列化标准”。
YAML是一种描述数据的简单语言。与PHP一样,它也有用于简单类型(如字符串、布尔值、浮点数或整数)的语法。但与PHP不同的是,它区分了数组(序列)和哈希(映射)。
本节描述在symfony中使用YAML作为配置文件格式所需要的最小特性集,尽管YAML格式能够描述更复杂的嵌套数据结构。ob娱乐下载
标量
标量的语法类似于PHP语法。
字符串
YAML中的字符串
YAML中的单引号字符串
提示
在单引号字符串中,一个单引号'
必须加倍:
“单引号字符串中的单引号”
" YAML\n中的双引号字符串"
当字符串以一个或多个相关空格开始或结束时,引用样式非常有用。
提示
双引号样式提供了一种表达任意字符串的方法,使用\
转义序列。在需要嵌入对象时,它非常有用\ n
或者字符串中的unicode字符。
当字符串包含换行符时,可以使用由管道(|
),表示该字符串将跨越几行。在字面量中,换行符被保留:
|\/ /| |\/| | / /| | | |__
字符串也可以用折叠样式来写,表示为>
,其中每个换行符都被空格取代:
>这是一个非常长的句子,在YAML中跨越了几行,但它将被呈现为一个不带回车符的字符串。
请注意
注意前面例子中每行前的两个空格。它们不会出现在结果的PHP字符串中。
数字
#一个整数12
#八进制014
#十六进制0xC
# a浮动13.4
#指数为1.2e+34
#∞.inf
零位
YAML中的空值可以用零
或~
.
布尔值
YAML中的布尔值用真正的
而且假
.
日期
YAML使用ISO-8601标准来表示日期:
2001 - 12 - 14 - t21:59:43.10凌晨
#简单日期2002-12-14
集合
YAML文件很少用于描述简单的标量。大多数时候,它描述一个集合。集合可以是一个序列,也可以是元素的映射。序列和映射都转换为PHP数组。
序列使用破折号和空格(-
):
- PHP - Perl - Python
这相当于下面的PHP代码:
数组(“PHP”,“Perl”,“巨蟒”);
映射使用冒号后跟空格(:
)来标记每个键/值对:
PHP: 5.2 MySQL: 5.1 Apache: 2.2.20
相当于下面的PHP代码:
数组(“PHP”= >5.2,“MySQL”= >5.1,“阿帕奇”= >“2.2.20”);
请注意
在映射中,键可以是任何有效的YAML标量。
冒号和值之间的空格数量无关紧要,只要至少有一个:
PHP: 5.2 MySQL: 5.1 Apache: 2.2.20
YAML使用缩进和一个或多个空格来描述嵌套集合:
“ob娱乐下载symfony 1.0”:PHP: 5.0 Propel: 1.2“symfony 1.2”:PHP: 5.2 Propel: 1.3
这个YAML相当于下面的PHP代码:
数组(“ob娱乐下载symfony 1.0”= >数组(“PHP”= >5.0,“推动”= >1.2,),“ob娱乐下载symfony 1.2”= >数组(“PHP”= >5.2,“推动”= >1.3,),);
在YAML文件中使用缩进时,有一件重要的事情需要记住:缩进必须使用一个或多个空格,但决不能使用表格.
你可以嵌套序列和映射,你可以像这样嵌套序列和映射:
'第1章':-介绍-事件类型'第2章':-介绍-助手
YAML还可以为集合使用流样式,使用显式指示器而不是缩进来表示范围。
序列可以写成方括号内以逗号分隔的列表([]
):
[PHP, Perl, Python]
映射可以写成用逗号分隔的键/值列表({}
):
{PHP: 5.2, MySQL: 5.1, Apache: 2.2.20}
你也可以混合搭配样式来获得更好的可读性:
'第一章':[介绍,事件类型]'第二章':[介绍,助手]
sob娱乐下载ymfony 1.0: {PHP: 5.0, Propel: 1.2} "symfony 1.2": {PHP: 5.2, Propel: 1.3}
评论
注释可以在YAML中添加,只需在注释前加上一个散列标记(#
):
#在“symfony 1.2”的末尾注释:ob娱乐下载{PHP: 5.2, Propel: 1.3}
请注意
注释被YAML解析器简单地忽略,并且不需要根据集合中嵌套的当前级别缩进。
动态YAML文件
在syob娱乐下载mfony中,YAML文件可以包含在解析发生之前被计算的PHP代码:
1.0版本:<?php回声函数(“1.0 /版本”)."\ n"? >1.1版本:“< ?php echo file_get_contents('1.1/VERSION') ?
小心别把压痕弄乱了。在向YAML文件添加PHP代码时,请记住以下简单的技巧:
的
<?php ? >
语句必须总是以行开头,或者嵌入值中。如果一个
<?php ? >
语句结束一行时,需要显式输出新行(“\n”)。
一个完整的例子
下面的例子说明了本节中解释的YAML语法:
"ob娱乐下载symfony 1.0": end_of_maintenance: 2010-01-01 is_stable: true release_manager: "Gregoire Hubert" description: >对于需要长时间维护的项目来说,这个稳定版本是正确的选择。latest_beta: ~ latest_minor: 1.0.20 supported_orms: [Propel] archives: {source: [zip, tgz], sandbox: [zip, tgz]} "syob娱乐下载mfony 1.2": end_of_maintenance: 2008-11-01 is_stable: true release_manager: 'Fabian Lange' description: >如果你今天开始一个新项目,这个稳定版本是正确的选择。latest_beta: null latest_minor: 1.2.5 supported_orms: - Propel - Doctrine archive: source: - zip - tgz沙箱:- zip - tgz
本作品在创作共用署名相似共享3.0未移植许可许可下获得许可。