YAML文件结构简介-创新互联

在看drupal8,发现其模块和主题的定义使用的是YAML文件。drupal8使用的Symfony框架中YAML文件结构,故翻译整理学习下,有理解不准确的地方请多多指教。

为克山等地区用户提供了全套网页设计制作服务,及克山网站建设行业解决方案。主营业务为网站制作、网站设计、克山网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

String

一般字符串可以使用单引号,双引号或者不使用引号。

A string in YAML 'A singled-quoted string in YAML' "A double-quoted string in YAML"

当使用单引号字符串时,其内容中的任何单引号必须加倍才能转义:

'A single quote '' inside a single-quoted string'

包含以下任何字符都需要引号,可以使用单引号或双引号,但使用单引号更方便

:, {, }, [, ], ,, &, *, #, ?, |, -, <, >, =, !, %, @, `

双引号方式提供了以一种表示任意字符串的方法,使用\来转义字符和序列

\0, \x01, \x02, \x03, \x04, \x05, \x06, \a, \b, \t, \n, \v, \f, \r, \x0e, \x0f, \x10, \x11, \x12, \x13, \x14, \x15, \x16, \x17, \x18, \x19, \x1a, \e, \x1c, \x1d, \x1e, \x1f, \N, \_, \L, \P

"A double-quoted string in YAML\n"

注:测试发现,当字符串中包含上面字符时,使用单引号也可以转义的

最后还有其他一些情况,不管你使用单引号还是双引号

  • true or false ( 否则就是布尔值 )

  • null or ~ (否则认为是null)

  • 当看起来像整数如2,14;浮点数如2.6,14.9;指数如12e7等,否则被视为一个数值

  • 当看起来像一个日期如2014-12-31,否则会自动转为一个Unix时间戳

'true' 'null' '2.14' '2014-12-31'

当一个字符串中包含换行符时,可以使用由(|)管道符来指示该字符串将跨越多行。在文字中,换行符被保存下来

|   \/ /| |\/| |   / / | |  | |__

或者字符串可以使用折叠样式编写,用>表示,其中每行换行符被空格替换

>     This is a very long sentence   that spans several lines in the YAML   but which will be rendered as a string   without carriage returns.

Numbers

12 #十进制 014 #八进制 0xC #十六进制 13.4 #浮点数 1.2e+24 #指数 .inf #无穷

Nulls

null ~

Booleans

true false

Dates

#简单日期 2002-12-14

Collections

- PHP - Perl - Python

对应PHP为

array('PHP','perl','Python') PHP:    5.2 MySQL:  5.1 Apache: 2.2.20

对应PHP为

array('PHP' => 5.2, 'MySQL' => 5.1, 'Apache' => '2.2.20');'symfony 1.0':   PHP:    5.0   Propel: 1.2 'symfony 1.2':   PHP:    5.2   Propel: 1.3

对应PHP为

array(     'symfony 1.0' => array(         'PHP'    => 5.0,         'Propel' => 1.2,     ),     'symfony 1.2' => array(         'PHP'    => 5.2,         'Propel' => 1.3,     ), );

在YAML文件中使用缩进时需要记住一件重要的事情:缩进必须由一个或多个空格完成,但从不使用制表符。

也可以根据需要嵌套序列和映射

'Chapter 1':   - Introduction   - Event Types 'Chapter 2':   - Introduction   - Helpers

也可使用明显的指示符而不是缩进

[PHP, Perl, Python]  { PHP: 5.2, MySQL: 5.1, Apache: 2.2.20 } 'Chapter 1': [Introduction, Event Types] 'Chapter 2': [Introduction, Helpers] 'symfony 1.0': { PHP: 5.0, Propel: 1.2 } 'symfony 1.2': { PHP: 5.2, Propel: 1.3 }

注释

#comment on a line

Explicit Typing

YAML规范定义了一些标签来显式地设置任何数据类型:

data:   # this value is parsed as a string (it's not transformed into a DateTime)   start_date: !!str 2002-12-14   # this value is parsed as a float number (it will be 3.0 instead of 3)   price: !!float 3   # this value is parsed as binary data encoded in base64   picture: !!binary |   R0lGODlhDAAMAIQAAP//9/X   17unp5WZmZgAAAOfn515eXv   Pz7Y6OjuDg4J+fn5OTk6enp

Unsupported YAML Features

Symfony Yaml组件不支持以下YAML特性:

  • Multi-documents (--- and ... markers); 多文档(---和...标记);

  • Complex mapping keys and complex values starting with ?;以?开头的复杂映射键和复数值;

  • Tagged values as keys;标记为键的值;

  • 下面标签和类型: !!set, !!omap, !!pairs, !!set, !!seq, !!bool, !!int, !!merge, !!null, !!timestamp, !!value, !!yaml;

  • 标记(TAG指令;例如:%TAG!标记:example.com,2000:app /)和标记引用(例如:!);

  • 映射元素使用类似序列的语法(例如:{foo,bar};改为使用{foo:〜,bar:〜})

原文地址:http://symfony.com/doc/current/components/yaml/yaml_format.html

验证地址:https://codebeautify.org/yaml-to-json-xml-csv

---

仅供个人理解参考

另外有需要云服务器可以了解下创新互联cdcxhl.cn,海内外云服务器15元起步,三天无理由+7*72小时售后在线,公司持有idc许可证,提供“云服务器、裸金属服务器、高防服务器、香港服务器、美国服务器、虚拟主机、免备案服务器”等云主机租用服务以及企业上云的综合解决方案,具有“安全稳定、简单易用、服务可用性高、性价比高”等特点与优势,专为企业上云打造定制,能够满足用户丰富、多元化的应用场景需求。


网站名称:YAML文件结构简介-创新互联
浏览路径:http://azwzsj.com/article/pjici.html