大多数的symfony配置文件使用YAML格式。YAML 官方网站称 YAML是“一种所有编程语言可用的友好的数据序列化标准”。
YAML 是一种轻量化的数据描述语言。类似于 PHP,YAML一样具有轻量化的语法与数据类型,如字符串、布尔型、浮点型或整数型等。但不同于PHP的是,它区分数组(序列)和散列表(哈希表)。
尽管 YAML格式能够描述更为复杂的嵌套的数据结构,本节仅描述你在symfony 中使用 YAML 作为配置文件所需要了解的 YAML最小功能集。
基础类型YAML 基础类型语法与PHP中的相似。
字符串A string in YAML'Asingled-quoted string in YAML'"A double-quoted string in YAML\n"在一个单引号标注的字符串中,一个单引号
'A single quote '' in a single-quoted string''
必须用另一个单引号进行转义:
当一个字符串前后包含空格时,必须使用引号标注的格式。
双引号标注的风格提供了一种使用转义符号
\
表达任意字符串的方式。当您需要嵌入一个\n
或Unicode字符的时候,这是非常有用的。
当一个字符串包含换行符,您可以通过使用|
符号表明该字符串将跨越数行,从而使用传统的文本风格。在这种格式下,换行符将不被转义:
或者,字符串可以通过>
符号写成这样的折叠式,这样每一个换行符都将被替换成空格:
数字请注意:在上面这个例子中,每一行前的两个空格将不会出现在结果的PHP字符串中。
在YAML中,空值可以用null
或~
表示。
在YAML中,布尔值用true
和false
表示。
日期尽管 symfony 的 YAML解析器能够把
on
、off
、yes
和no
等解析为布尔值,但是我们强烈反对使用他们,因为它们已经在YAML1.2标准中被移除。
YAML 使用 ISO-8601 标准表示日期:
2001-12-14t21:59:43.10-05:00#简单日期示例YAML文件很少仅用来描述一个简单的基础类型。大多数时候,它被用来描述一个集合。一个集合可以是一个序列(数组)或散列表(哈希表)。序列和散列表都会被转换成为 PHP 的数组。
使用一个跟着空格的“-
”符号来声明一个序列:
这相当于下面的PHP代码:
array('PHP', 'Perl', 'Python');使用一个跟着空格的冒号标记每一个键/值对来声明一个散列表:
PHP: 5.2这相当于下面的PHP代码:
array('PHP' => 5.2, 'MySQL' => 5.1,'Apache' => '2.2.20');在散列表中,键 (key)可以是任何合法的YAML基础类型。
一个散列项的冒号和值之间必须至少有一个或者更多个空格,而具体的空格数目并不重要:
PHP: 5.2YAML使用一个或多个空格的缩进来描述嵌套集合:
"symfony 1.0":这段 YAML 代码相当于下面的PHP代码:
array(在YAML文件中使用缩进时必须牢记的一件事情是:必须使用一个或多个空格进行缩进,而不能使用制表符(Tab键) 。
你可以像这样混合使用嵌套的序列和散列表:
'Chapter 1':YAML也可以使用流风格的集合,使用明确的标示符而不是缩进进行集合范围的界定。
一个序列可以写成方括号( []
)中逗号分隔的列表的形式:
一个散列表可以写成大括号( {}
)中逗号分隔的键/值对列表的形式:
你也可以混合两种风格,以实现更好的可读性:
'Chapter 1': [Introduction, Event Types]YAML 中添加注释的方式是通过井字符(#):
#行末评论动态 YAML 文件由于注释会被YAML解析器忽略,因此不必刻意对注释进行缩进。
在 symfony 中,一个 YAML 文件可以包含 PHP代码,这部分代码将在 YAML 文件解析前被执行:
1.0:注意保持文件的正确缩进格式。当在 YAML 中嵌入PHP 代码时,应记住以下几点:
<?
php?>
语句必须在一行的开始,或作为一个属性的值的一部分<?
php?>
在行末,则需要在 php中输出一个换行符(”\n”)。下面的例子使用了本章中提到的 YAML 语法:
"symfony 1.0":联系客服