跳转到主要内容
sina_门前小雨 提交于 8 April 2016

前言

打算从翻译文档入手学习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。地址为NowhereMain街34号,邮编为12345.

YAML语法还有些需要注意的细节:

l  缩进必须使用空格 项目前空格数相同即为平级,每级间的空格数大于1即可。

l  赋值算符后必须有空格 项目直接赋值用冒号,列表赋值用减号,冒号和减号后必须有空格。

总结

YAML不能用TAB缩进!YAML不能用TAB缩进!YAML不能用TAB缩进!

如果想更多了解YAML,更详细的语法在这里。另外请教各位在哪里能找到YAML术语的官方翻译?

标签
Drupal 版本