前言
打算从翻译文档入手学习Drupal8。翻译到一半,发现中的设配置文件使用的是YAML格式,所以先学习下YAML。
什么是YAML
YAML是一种用来序列化对象的标记言语格式,它可以把对象的实例用人类直接可读的文件存储起来。
举个栗子,我在程序中使用家庭类创建了一个实例,并将小明一家的数据填充其中。这里如果我想在下一次运行程序的时候不再填充一遍,就要把小明一家的实例保存下来。过去的方式是把对象直接转换为二进制编码保存,缺点是如果想在程序外对其进行修改,虽然不是不可能但明显是不划算的,这就是不可读。而使用YAML格式将对象存储,当然就是可读的,这将会在后面的YAML示例中举例说明。
YAML的优势(为什么使用YAML)
l 面向对象 Drupal8完全实现了面向对象,所以使用YAML可以更好地与面向对象相契合。尽管从我目前的学习到看来(只到路径解析)Drupal只把YAML当作配置文件用,并没有发挥它的序列化功能,不过我觉得学习到实体结构后就能了解到YAML的强之处了。
l YAML的解析速度特别快 相对XML和HTML来说。
l YAML可读性强 使用缩进来清楚明白地表示层级关系。同时因为这点,所以字符串不用界定符了。
YAML示例
示例内容引自百度百科:
1 house: 2 family: 3 name: Doe 4 parents: 5 - John 6 - Jane 7 children: 8 - Paul 9 - Mark 10 - Simone 11 address: 12 number: 34 13 street: Main Street 14 city: Nowheretown 15 zipcode: 12345
如例所示,房子中有家庭和地址。家庭名为Doe,家长是John和Jane,孩子有Paul、Mark和Simone。地址为Nowhere
镇
Main街34号,邮编为12345.
YAML语法还有些需要注意的细节:
l 缩进必须使用空格 项目前空格数相同即为平级,每级间的空格数大于1即可。
l 赋值算符后必须有空格 项目直接赋值用冒号,列表赋值用减号,冒号和减号后必须有空格。
总结
YAML不能用TAB缩进!YAML不能用TAB缩进!YAML不能用TAB缩进!
如果想更多了解YAML,更详细的语法在这里。另外请教各位在哪里能找到YAML术语的官方翻译?