YAML标记语言

前言:今天在http://pecl.php.net/安装Mongodb的扩展时,无意间点进了榜单,发现第一和第二的扩展都非常眼熟,分别是imagick和yaml。imagick和我曾经用来转换pdf格式文件成图片的软件imagemagick很像,打开一看竟然真的是对imagemagick的封装,这个软件非常强大,可惜当年我不知道php有扩展可以用,直接使用的php执行的命令行,些许不优雅。不过当时还是php5.3,这个扩展的下载量是从php5.4开始猪突猛进的。非常不错的软件,有图片处理需求的都可以装一下这个扩展,改天再详细聊,今天主要是讲讲老二:YAML标记语言。

缘起

为什么会觉得熟悉呢,因为使用的phpstorm时,经常能看到yml后缀的文件,例如.styleci.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]}

特征

  1. 后面的字符串不用引号包裹(有空格或者特殊字符除外,参照.env文件)
  2. 上下要对齐,符合人眼的习惯

用处

写配置文件,很简洁。我怀疑composer.json如果改成composer.yml会不会更易读。

弊端

不像json一样常见,用户在阅读时有学习成本。但是一旦掌握,会发现很简洁。

打赏作者

发表评论

电子邮件地址不会被公开。