前言:今天在http://pecl.php.net/安装Mongodb的扩展时,无意间点进了榜单,发现第一和第二的扩展都非常眼熟,分别是imagick和yaml。imagick和我曾经用来转换pdf格式文件成图片的软件imagemagick很像,打开一看竟然真的是对imagemagick的封装,这个软件非常强大,可惜当年我不知道php有扩展可以用,直接使用的php执行的命令行,些许不优雅。不过当时还是php5.3,这个扩展的下载量是从php5.4开始猪突猛进的。非常不错的软件,有图片处理需求的都可以装一下这个扩展,改天再详细聊,今天主要是讲讲老二:YAML标记语言。
缘起
为什么会觉得熟悉呢,因为使用的phpstorm时,经常能看到yml后缀的文件,不知道做什么的。而且竟然能排行老二,想必是不得了的东西。
入门
网上查了下,YAML(/ˈjæməl/,尾音类似camel骆驼)是一个可读性高,用来表达数据序列化的格式。嗯,总结下来就是一种规定的格式和写法,类似于标记语言。
常见
常见格式分为3种:
对象:
使用:分割,每多一层,多一个冒号
例如:a:b:c转换成我们常见的json就是{"a":{"b":"c"}}
数组:
使用-分割,没多一层,多一个横杠
例如: -a
-b
-c
转换成数组就是[a,b,c],要注意的是上下要对齐。
混合:
a:
-a
-b
转换成json就是{a:[b,c]}
特征
- 后面的字符串不用引号包裹(有空格或者特殊字符除外,参照.env文件)
- 上下要对齐,符合人眼的习惯
用处
写配置文件,很简洁。我怀疑composer.json如果改成composer.yml会不会更易读。
弊端
不像json一样常见,用户在阅读时有学习成本。但是一旦掌握,会发现很简洁。
网友评论