Yaml组件

编辑该页面

警告:你浏览的文档欧宝体育电话欧宝娱乐app下载地址Symfony 2.4,不再维护。

这个页面的更新版本Symf欧宝娱乐app下载地址ony 6.2(当前的稳定版本)。

Yaml组件

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

它是什么?

Symf欧宝娱乐app下载地址ony Yaml组件解析Yaml字符串将它们转换为PHP数组。它也能够将PHP数组转换成YAML字符串。

YAML,YAML不是标记语言,是人类友好的数据序列化所有编程语言标准。YAML是一个伟大的对你的配置文件格式。YAML文件一样表达XML文件和读取INI文件。

Symf欧宝娱乐app下载地址ony Yaml组件实现一个选择中定义的特征子集YAML 1.2版规范

提示

了解更多关于Yaml组件YAML格式篇文章。

安装

您可以安装组件在两个不同的方面:

为什么?

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

真正的解析器

它体育真正的解析器和能够解析YAML的大子集规范,为所有您的配置需求。这也意味着解析器很健壮,容易理解,简单扩展。

明确的错误信息

每当你的语法有问题与你的YAML文件、库输出有用的消息文件名和行号出现问题的位置。它简化了调试。

转储文件支持

也能够把PHP数组和对象YAML的支持,和内联水平配置输出。

类型支持

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

完整的合并关键支持

完全支持引用别名和完整的合并的关键。不要重复你自己通过引用常见的配置。

使用Symfony 欧宝娱乐app下载地址YAML组件

Symf欧宝娱乐app下载地址ony2 Yaml组件非常简单,主要由两个类:一个解析Yaml字符串(解析器),另一个转储YAML的PHP数组字符串(自动倾卸车)。

这两个类,Yaml类作为一个瘦包装器,简化了共同使用。

阅读YAML文件

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

1 2 3 4 5
使用欧宝娱乐app下载地址\组件\Yaml\解析器;美元yaml=解析器();美元价值=美元yaml- >解析函数(“/道路/ / file.yml”));

如果一个错误发生在解析,解析器会抛出一个抛出ParseException异常指示错误类型和行原YAML字符串错误发生的位置:

1 2 3 4 5 6 7
使用欧宝娱乐app下载地址\组件\Yaml\异常\抛出ParseException;试一试{美元价值=美元yaml- >解析函数(“/道路/ / file.yml”));}(ParseException美元e{printf ()“无法YAML解析:% s”,美元e- >getMessage ());}

提示

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

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

1 2 3
使用欧宝娱乐app下载地址\组件\Yaml\Yaml;美元yaml= Yaml::解析函数(“/道路/ / file.yml”));

parse ()静态方法使用YAML字符串或一个包含YAML文件。在内部,它调用parse ()方法,但增强了错误如果出现错误将文件名添加到消息。

谨慎

因为它是目前可能将文件名传递给这个方法,你必须先验证输入。通过文件名在Symfony中已被弃用2.2,3.0在Symfony将被删欧宝娱乐app下载地址除。

写作YAML文件

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

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

请注意

当然,Symfony Yaml欧宝娱乐app下载地址翻车机不能转储资源。同时,即使翻车机能够转储PHP对象,它被认为是一个不受支持的特性。

如果一个错误发生在转储,解析器会抛出一个DumpException例外。

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

1 2 3
使用欧宝娱乐app下载地址\组件\Yaml\Yaml;美元yaml= Yaml::转储(美元数组,美元内联);

YAML格式支持两种类型的数组表示,扩大,内联。默认情况下,清洁工人使用内联表示:

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

第二个参数dump ()方法定制的输出开关的水平扩展内联一个表示:

1
回声美元自动倾卸车- >转储(美元数组,1);
1 2
foo:酒吧栏:{foo:酒吧,栏:巴兹}
1
回声美元自动倾卸车- >转储(美元数组,2);
1 2 3 4
foo:酒吧栏:foo:酒吧栏:巴兹
这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。