YAML组件

编辑本页

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

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

YAML组件

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

是什么?

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

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

Symfob娱乐下载ony2 YAML组件实现了规范的YAML 1.2版本。

提示

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

安装

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

为什么?

Symfony YAML的目标之一是在ob娱乐下载速度和特性之间找到正确的平衡。它只支持处理配置文件所需的特性。

真正的解析器

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

清除错误消息

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

转储文件支持

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

类型支持

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

完全合并键支持

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

使用Symfony2ob娱乐下载 YAML组件

Symfob娱乐下载ony2 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字符串。

加载YAML文件时,有时最好使用parse ()包装方法:

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

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

在YAML文件中执行PHP

2.1

Yaml: enablePhpParsing ()方法是Symfony 2.1的新方ob娱乐下载法。在2.1之前,PHP是总是在调用parse ()函数。

默认情况下,如果你在YAML文件中包含PHP,它将不会被解析。如果确实希望解析PHP,则必须调用Yaml: enablePhpParsing ()在解析文件之前激活此模式。如果您只想允许PHP代码用于单个YAML文件,请确保在通过调用来解析单个文件之后禁用PHP解析Yaml::$enablePhpParsing = false;enablePhpParsing美元是公共财产)。

编写YAML文件

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

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

请注意

当然,Symfony2 YAMob娱乐下载L转储器不能转储资源。而且,即使转储器能够转储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许可证。