YAML
來自YAML官方網站 (http://www.yaml.org/) 的定義: YAML是一種直觀的能夠被電腦識別的的數據數據序列化格式,它並且容易被人類閱讀,容易與腳本語言交互的。換種說法,YAML是一種非常簡單的類似於XML的數據描述語言,語法比XML簡單很多。他在描述可以被轉化成數組或者hash的數據是非常有用,例如:
$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將會自動創建下面的PHP數組:
house:
family:
name: Doe
parents:
- John
- Jane
children:
- Paul
- Mark
- Simone
address:
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。