Yaml组件
编辑该页面警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 2.3,不再维护。
读这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。
Yaml组件
Yaml组件加载和转储Yaml文件。
它是什么?
Symfob娱乐下载ony Yaml组件解析Yaml字符串将它们转换为PHP数组。它也能够将PHP数组转换成YAML字符串。
YAML,YAML不是标记语言,是人类友好的数据序列化所有编程语言标准。YAML是一个伟大的对你的配置文件格式。YAML文件一样表达XML文件和读取INI文件。
Symfob娱乐下载ony Yaml组件实现一个选择中定义的特征子集YAML 1.2版规范。
提示
了解更多关于Yaml组件YAML格式篇文章。
安装
您可以安装组件在两个不同的方面:
- 安装它通过作曲家(
ob娱乐下载symfony / yaml
在Packagist); - 使用官方的Git存储库(https://github.com/ob娱乐下载symfony/yaml)。
然后,需要供应商/ autoload.php
文件,使作曲家提供的半自动的机制。否则,您的应用程序无法找到这个Symfony组件的类。ob娱乐下载
为什么?
快
Symfony Yaml的目标之一是找到ob娱乐下载正确的速度和功能之间的平衡。它支持所需的特性来处理配置文件。值得注意的特点是:缺乏文档的指令,多行引用消息,紧凑块集合和多文档文件。
真正的解析器
它体育真正的解析器和能够解析YAML的大子集规范,为所有您的配置需求。这也意味着解析器很健壮,容易理解,简单扩展。
明确的错误信息
每当你的语法有问题与你的YAML文件、库输出有用的消息文件名和行号出现问题的位置。它简化了调试。
转储文件支持
也能够把PHP数组和对象YAML的支持,和内联水平配置输出。
类型支持
它支持大多数的YAML内置类型如日期、整数,八进制,布尔值等等……
完整的合并关键支持
完全支持引用别名和完整的合并的关键。不要重复你自己通过引用常见的配置。
使用Symfony ob娱乐下载YAML组件
Symfob娱乐下载ony Yaml组件非常简单,主要由两个类:一个解析Yaml字符串(解析器),另一个转储YAML的PHP数组字符串(自动倾卸车)。
这两个类,Yaml类作为一个瘦包装器,简化了共同使用。
阅读YAML文件
的parse ()方法解析YAML字符串,并将其转换为一个PHP数组:
1 2 3
使用ob娱乐下载\组件\Yaml\Yaml;美元价值= Yaml::解析函数(“/道路/ / file.yml”));
谨慎
因为它是目前可能将文件名传递给这个方法,你必须先验证输入。2.2通过文件名在Symfony中已被弃用,是在Symfony 3.0删ob娱乐下载除。
如果一个错误发生在解析,解析器会抛出一个抛出ParseException异常指示错误类型和行原YAML字符串错误发生的位置:
1 2 3 4 5 6 7
使用ob娱乐下载\组件\Yaml\异常\抛出ParseException;试一试{美元价值= Yaml::解析函数(“/道路/ / file.yml”));}抓(ParseException美元e{printf ()“无法YAML解析:% s”,美元e- >getMessage ());}
写作YAML文件
的dump ()转储任何PHP数组YAML的表示方法:
1 2 3 4 5 6 7 8 9 10
使用ob娱乐下载\组件\Yaml\Yaml;美元数组=数组(“foo”= >“酒吧”,“酒吧”= >数组(“foo”= >“酒吧”,“酒吧”= >“记者”),);美元yaml= Yaml::转储(美元数组);写入“/道路/ / file.yml”,美元yaml);
如果一个错误发生在转储,解析器会抛出一个DumpException例外。
数组扩张和内联
YAML格式支持两种类型的数组表示,扩大,内联。默认情况下,清洁工人使用内联表示:
1
{foo:酒吧,栏:{foo:酒吧,栏:巴兹}}
第二个参数dump ()方法定制的输出开关的水平扩展内联一个表示:
1
回声Yaml::转储(美元数组,1);
1 2
foo:酒吧栏:{foo:酒吧,栏:巴兹}
1
回声Yaml::转储(美元数组,2);
1 2 3 4
foo:酒吧栏:foo:酒吧栏:巴兹
缩进
默认情况下,YAML组件将使用4个空格缩进。这可以改变使用第三个参数如下:
1 2
/ /使用8个空格缩进回声Yaml::转储(美元数组,2,8);
1 2 3 4
foo:酒吧栏:foo:酒吧栏:巴兹
无效的类型和对象序列化
默认情况下,YAML组件将编码任何“不支持”类型(即资源和对象)零
。
而不是编码零
你可以选择抛出一个异常,如果遇到一个无效的类型在翻车机或解析器如下:
1 2 3 4 5
/ /抛出一个异常,如果遇到一个资源或对象Yaml::转储(美元数据,2,4,真正的);/ /抛出一个异常YAML如果找到一个编码对象的字符串Yaml::解析(美元yaml,真正的);
然而,您可以激活对象支持使用下一个参数:
1 2 3 4 5 6 7 8 9
美元对象=新\ stdClass ();美元对象- >foo =“酒吧”;美元倾倒= Yaml::转储(美元对象,2,4,假,真正的);/ / ! ! php /对象:O: 8:“stdClass”: 1: {: 5:“foo”;销售:7:“酒吧”;}美元解析= Yaml::解析(美元倾倒,假,真正的);var_dump (is_object (美元解析));/ /正确的回声美元解析- >foo;/ /酒吧
YAML组件使用PHP的serialize ()
方法来生成一个对象的字符串表示。
谨慎
对象序列化是特定于这个实现,其他PHP YAML解析器可能不承认php /对象
标签和non-PHP实现肯定不会——使用自由裁量权!