总的来说,YAML是一门相当牛X的语言,用来表达数据最合适,既简单又易读,容易和脚本语言交互的。换种说法,YAML是一种很简单的类似于XML的数据描述语言,语法比XML简单很多
关键是能很容易的转换成php数组,像是这段YML
house:
family:
name: Doe
parents:
- John
- Jane
children:
- Paul
- Mark
- Simone
address:
number: 34
street: Main Street
city: Nowheretown
zipcode: "12345"
便能十分容易的转换成php的数组表示:
$house = array(
'family' => array(
'name' => 'Doe',
'parents' => array('John', 'Jane'),
'children' => array('Paul', 'Mark', 'Simone')
),
'address' => array(
'number' => 34,
'street' => 'Main Street',
'city' => 'Nowheretown',
'zipcode' => '12345'
)
);
在YAML里面,结构通过缩进来表示,连续的项目通过减号"-"来表示,map结构里面的key/value对用冒号":"来分隔。YAML也有用来描述好几行相同结构的数据的缩写语法,数组用'[]'包括起来,hash用'{}'来包括。因此,前面的这个YAML能够缩写成这样:
house:
family: { name: Doe, parents: [John, Jane], children: [Paul, Mark, Simone] }
address: { number: 34, street: Main Street, city: Nowheretown, zipcode: 12345 }
YAML是"Yet Another Markup Language(另一种标记语言)"的缩写,读音"yamel",或"雅梅尔"。这种格式大约是2001年出现的,现在为止已有多种语言的YAML解析器。
提示 YAML格式的周详规格能够在YAML官方网站http://www.yaml.org/找到。
如您所见,写YAML要比XML快得多(无需关闭标签或引号),并且比'.ini'文档功能更强(ini文档不支持层次)。所以symfony选择YAML作为配置信息的最好选择格式。在本书您会看到很多YAML文档,但是他很直观您用不着更深入地研究YAML。