Yaml组件

编辑本页

警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.6,现已不再维护。

本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。

Yaml组件

Yaml组件加载和转储Yaml文件。

这是什么?

Symfob娱乐下载ony Yaml组件解析Yaml字符串,将其转换为PHP数组。它还能够将PHP数组转换为YAML字符串。

YAMLYAML不是标记语言,是适用于所有编程语言的人类友好的数据序列化标准。YAML是配置文件的一种很好的格式。YAML文件和XML文件一样具有表现力,和INI文件一样具有可读性。

Symfob娱乐下载ony Yaml组件实现了定义在YAML 1.2版本规范

提示

中了解有关Yaml组件的更多信息YAML格式篇文章。

安装

你可以用两种不同的方式安装组件:

然后,要求供应商/ autoload.php文件以启用Composer提供的自动加载机制。否则,您的应用程序将无法找到这个Symfony组件的类。ob娱乐下载

为什么?

Symfony Yaml的目标之一是在速ob娱乐下载度和功能之间找到正确的平衡。它只支持处理配置文件所需的特性。值得注意的是:文档指令、多行引用消息、紧凑块集合和多文档文件。

真正的解析器

它展示了一个真正的解析器,能够解析YAML规范的一个大子集,以满足您的所有配置需求。这还意味着该解析器非常健壮,易于理解,并且易于扩展。

清除错误消息

每当您的YAML文件出现语法问题时,库都会输出一条有用的消息,其中包含发生问题的文件名和行号。它大大简化了调试。

转储文件支持

它还能够在对象支持下将PHP数组转储到YAML,并提供内联级配置以获得漂亮的输出。

类型支持

它支持大多数YAML内置类型,如日期、整数、八进制、布尔值等等……

完全合并键支持

完全支持引用、别名和完整的合并键。不要重复引用常用配置位。

使用Symfony ob娱乐下载YAML组件

Symfob娱乐下载ony Yaml组件非常简单,由两个主要类组成:一个解析Yaml字符串(解析器),另一个将PHP数组转储到YAML字符串(自动倾卸车).

在这两个类之上,是Yaml类充当简化常用用途的薄包装器。

读取YAML文件

parse ()方法解析YAML字符串并将其转换为PHP数组:

1 2 3 4 5
使用ob娱乐下载组件Yaml解析器yaml解析器();价值yaml->解析函数(“/道路/ / file.yml”));

如果在解析期间发生错误,解析器将抛出抛出ParseExceptionexception指示错误类型和原始YAML字符串中错误发生的行:

1 2 3 4 5 6 7
使用ob娱乐下载组件Yaml异常抛出ParseException试一试价值yaml->解析函数(“/道路/ / file.yml”));}(ParseExceptione) {printf("无法解析YAML字符串:%s"e->getMessage ());}

提示

由于解析器是可重入的,所以可以使用相同的解析器对象加载不同的YAML字符串。

它也可以方便地使用parse ()包装方法:

1 2 3
使用ob娱乐下载组件YamlYamlyaml= Yaml::解析函数(“/道路/ / file.yml”));

parse ()static方法接受YAML字符串或包含YAML的文件。在内部,它调用parse ()方法,但如果出现错误,则通过向消息中添加文件名来增强错误。

谨慎

因为目前可以向此方法传递文件名,所以必须首先验证输入。传递文件名在Symfony 2.2中已弃用,并将在Symfony 3.0ob娱乐下载中被移除。

编写YAML文件

dump ()方法将任何PHP数组转储到它的YAML表示:

12 3 4 5 6 7 8 9 10 11 12
使用ob娱乐下载组件Yaml自动倾卸车数组数组“foo”= >“酒吧”“酒吧”= >数组“foo”= >“酒吧”“酒吧”= >“记者”),);自动倾卸车翻车机();yaml自动倾卸车->转储(数组);写入“/道路/ / file.yml”yaml);

请注意

当然,Symfony Yamlob娱乐下载转储器不能转储资源。而且,即使转储器能够转储PHP对象,也被认为是不受支持的特性。

如果在转储期间发生错误,解析器将抛出DumpException例外。

如果只需要转储一个数组,则可以使用dump ()静态方法快捷方式:

1 2 3
使用ob娱乐下载组件YamlYamlyaml= Yaml::转储(数组内联);

YAML格式支持两种数组表示形式:扩展数组和内联数组。默认情况下,转储器使用内联表示:

1
foo:酒吧,栏:foo:酒吧,栏:巴兹

的第二个参数dump ()方法自定义输出从展开表示切换到内联表示的级别:

1
回声自动倾卸车->转储(数组1);
1 2
foo:酒吧栏:foo:酒吧,栏:巴兹
1
回声自动倾卸车->转储(数组2);
1 2 3 4
foo:酒吧栏:foo:酒吧栏:巴兹
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。