[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); ```