[TOC] #### 1. yaml 介紹 --- yaml 是一種類似 xml 和 json 的標記性語言。yaml 是一種直觀的數據序列化格式,可讀性強,各種編程語言都有支持 yaml 的庫。它以數據為核心,比傳統的 xml 更加簡潔。其文件擴展名可以使用 .yml 和 .yaml #### 2. yaml 數據結構 --- **yaml 認為數據由三種結構組成: 純量、序列、鍵值表** **1\. 純量 (scalars)** 純量又稱為標量,就是最基本的、不可再分的值,如: 字符串、布爾值、數字、null、時間、日期 ```yaml title: 網站標題 mobile: 10086 job: ~ jobs: null ``` **2\. 序列** 序列又稱為數組、列表 ```yaml # 序列 js: - vue - react ``` 轉為 javascript 后 ``` { js: ['vue', 'react'] } ``` **3\. 鍵值表** 鍵值表其實就是對象或數組,在 js 中是對象,在 php 中是數組 ```yaml # 鍵值表 database: username: "root" password: "123456" ``` 轉為 php 數據后 ``` ^ array:1 [▼ "database" => array:2 [▼ "username" => "root" "password" => "123456" ] ] ``` #### 3. yaml 基本語法 --- 1\. `---` 表示 yaml 格式,代表文件的開始; `...` 表示結束,結束標記可以省略 ``` ---yaml database: username: "root" password: "123456" ... ``` 2\. `#` 表示單行注釋,注釋內容會被解析器忽略 ```yaml # 名稱 name: 網站標題 # 數組 javascript: - vue - react ``` 3\. 使用空格表示層級關系: 縮進的空格數量不重要,但相同層級的元素必須左側對齊。特別注意: 不支持 tab 縮進 ```yaml # 錯誤寫法 database: username: "root" password: "123456" # 正確寫法 database: username: "root" password: "123456" ``` #### 4. yaml 庫 --- 各種編程語言都有支持 yaml 數據格式的庫,在 PHP 中可以使用: ``` composer require symfony/yaml ``` ```php $file = 'data.yml'; $config = (new \Symfony\Component\Yaml\Yaml)->parseFile($file); ```