YAML组件
编辑本页警告:您正在浏览的文档欧宝官网下载appob娱乐下载Symfony 2.1,现已不再维护。
读本页的更新版本用于Syob娱乐下载mfony 6.2(当前稳定版本)。
YAML组件
YAML组件加载和转储YAML文件。
是什么?
Symfob娱乐下载ony2 YAML组件解析YAML字符串,将其转换为PHP数组。它还能够将PHP数组转换为YAML字符串。
YAML,YAML不是标记语言,是适用于所有编程语言的人类友好的数据序列化标准。YAML是配置文件的一种很好的格式。YAML文件和XML文件一样具有表现力,和INI文件一样具有可读性。
Symfob娱乐下载ony2 YAML组件实现了规范的YAML 1.2版本。
提示
中了解有关Yaml组件的更多信息YAML格式篇文章。
安装
你可以用两种不同的方式安装组件:
- 使用官方Git存储库(https://github.com/ob娱乐下载symfony/Yaml);
- 通过Composer安装(
ob娱乐下载symfony / yaml
在Packagist).
为什么?
快
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”));}抓(ParseException$e) {printf("无法解析YAML字符串:%s",$e->getMessage ());}
提示
由于解析器是可重入的,所以可以使用相同的解析器对象加载不同的YAML字符串。
加载YAML文件时,有时最好使用parse ()包装方法:
1 2 3
使用ob娱乐下载\组件\Yaml\Yaml;$yaml= 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娱乐下载\组件\Yaml\Yaml;$yaml= Yaml::转储($数组,$内联);
YAML格式支持两种数组表示形式:扩展数组和内联数组。默认情况下,转储器使用内联表示:
1
{foo:酒吧,栏:{foo:酒吧,栏:巴兹}}
的第二个参数dump ()方法自定义输出从展开表示切换到内联表示的级别:
1
回声$自动倾卸车->转储($数组,1);
1 2
foo:酒吧栏:{foo:酒吧,栏:巴兹}
1
回声$自动倾卸车->转储($数组,2);
1 2 3 4
foo:酒吧栏:foo:酒吧栏:巴兹