yaml文件的语法及注意事项

因为工作需要,最近在倒腾symfony,而symfony框架里面配置文件超级多,用的都是yaml文件作为配置文件,由于自己对该文件不是很熟悉,故找了资料了解了下,此为学习笔记。

首先举个例子,


请将如下php数组转换为yaml格式:

$bat = array(
	'website' =>array(
		'baidu' => 'http://www.baidu.com',
		'qq' => 'http://www.qq.com',
		'ali' => array('http://www.taobao.com','http://www.tmall.com')
		),
	'ceo' => array(
		'yanhongli' => '李彦宏',
		'huatengma' => '麻花疼',
		'yunma' => '马云'
		)
);

用yaml来表达可以表现为:

bat:
 website:
  baidu: http://www.baidu.com
  qq: http://www.qq.com
  ali:
   - http://www.taobao.com
   - http://www.tmall.com
 ceo:
  yanhongli: 李彦宏
  huatengma: 麻花疼
  yunma: 马云

或者这样:

bat:
 website:{ baidu: http://www.baidu.com, qq: http://www.qq.com, ali: [http://www.taobao.com, http://www.tmall.com] }
 ceo:{ yanhongli: 李彦宏, huatengma: 麻花疼, yunma: 马云 }


yaml的语法:

在yaml里面,结构通过缩进来表示,连续的项目通过减号“-”来表示,map结构里面的键值(key/value)对用冒号“:”来分割。yaml也有用来描述好几行相同结构数据的缩写语法,数组用“[]”包括起来,hash用“{}”来包括。

这几乎就是yaml的全部语法了。


使用yaml的注意事项

1.在yaml里面,结构通过缩进来表示,yaml不支持制表符tab缩进,请使用空格缩进

2、如果参数是以空格开始或结束的字符串,应使用单引号把他包进来。如果一个字符串参数包含特殊字符,也要用单引号包起来。下面是示例:

如果要保存类似    http://www.bai'u.com这样的数据时,下面这种写法是错误的:

bat:
 website:{	baidu:     http://www.bai'u.com }<span style="white-space:pre">		</span>#错误写法1:没有用单引号包起来
bat:
 website:{	baidu: '    http://www.bai'u.com'}<span style="white-space:pre">		</span>#错误写法2:字符串中包含了单引号而且字符串开头有空格时需要用两个单引号来表示字符串中的单引号

正确写法如下:

bat:
 website:{	baidu: '    http://www.bai''u.com'}
3、当字符串较长时,可以使用特殊字符头外加一个缩进表示长字符串,可以换行。下面是示例:

website:
 caoliu: >
  你懂的你懂的你懂的你懂的你懂的你懂的
  你懂的你懂的你懂的你懂的你懂的你懂的
  你懂的你懂的你懂的你懂的你懂的你懂的

 dongjinre: |
  你懂的你懂的你懂的你懂的你懂的你懂的
  你懂的你懂的你懂的你懂的你懂的你懂的
  你懂的你懂的你懂的你懂的你懂的你懂的
4、在yaml里,用on、1、true来表示true,off、0、false来表示false

5、在yaml里,用#做注释

6、如果你在yaml文件中看到了.开头的字符串,这个字符串代表的是分类头,如下所示:

all:
 .general:
  tax: 19.6

 mail:
  webmaster: webmaster@example.com
分类头的主要作用在于使yaml文件更易读。


推荐两个php解析yaml的类库:

1、symfony框架自带的yaml模块:https://packagist.org/packages/symfony/yaml

2、spyc解析类:http://sourceforge.net/projects/spyc/files/OldFiles/spyc-0.3.beta.tar.gz/download?use_mirror=iweb&download=

  • 21
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值