如何使用序列化器吗

编辑该页面

警告:你浏览的文档欧宝官网下载appob娱乐下载Symfony 4.4,不再维护。

这个页面的更新版本Symfob娱乐下载ony 6.2(当前的稳定版本)。

如何使用序列化器吗

ob娱乐下载Symfony提供了一个序列化器来序列化/反序列化的对象和不同的格式(例如JSON或XML)。在使用它之前,阅读序列化器组件文档熟悉其哲学和标准化者和编码器的术语。

安装

在应用程序中使用ob娱乐下载Symfony Flex运行这个命令安装序列化器ob娱乐下载Symfony包使用前:

1
美元作曲家需要symfony / seob娱乐下载rializer-pack

使用序列化器服务

一旦启用,序列化器服务可以被注入在你需要的任何服务或它可以用在一个控制器:

1 2 3 4 5 6 7 8 9 10 11 12 13
/ / src /控制器/ DefaultController.php名称空间应用程序\控制器;使用ob娱乐下载\\FrameworkBundle\控制器\AbstractController;使用ob娱乐下载\组件\序列化器\SerializerInterface;DefaultController扩展AbstractController{公共函数指数(SerializerInterface美元序列化器){/ /保持阅读用法示例}}

添加标准化者和编码器

一旦启用,序列化器服务将在容器中。它附带了一组有用的编码器标准化者

启用了编码器支持以下格式:

以及以下标准化者:

其他内置的标准化者和自定义标准化者和/或编码器可以通过标记他们serializer.normalizerserializer.encoder。还可以设置的优先级标记为了决定匹配的顺序。

谨慎

总是确保加载DateTimeNormalizer当序列化DateTimeDateTimeImmutable类,以避免过度的内存使用和公开内部细节。

使用串行化组注释

你可以添加@Groups注释您的类:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17日18 19 20 21日22日23日24日25日26日27 28 29 30 31
/ / src /实体/ Product.php名称空间应用程序\实体;使用学说\ORM\映射作为ORM;使用ob娱乐下载\组件\序列化器\注释\;/ * * *@ORM()* / \实体产品{/ * * *@ORM\ Id *@ORM\ GeneratedValue *@ORM\列(type =“整数”)*@Groups({“show_product”、“list_product”}) * /私人美元id;/ * * *@ORM\列(类型=“字符串”,长度= 255)*@Groups({“show_product”、“list_product”}) * /私人美元的名字;/ * * *@ORM\列(type =“整数”)*@Groups({}“show_product”) * /私人美元描述;}

现在您可以选择使用哪个团体当序列化:

1 2 3 4 5
美元json=美元序列化器- >序列化(美元产品,json的,(“组织”= >“show_product”]);

提示

的值键可以是一个字符串,或一个字符串数组。

除了@Groups注释,序列化器组件还支持YAML或XML文件。这些文件被存储在一个时自动加载以下位置:

  • 所有* .yaml* . xml文件配置/序列化器/目录中。
  • serialization.yamlserialization.xml文件资源/ config /包的目录;
  • 所有* .yaml* . xml文件资源/ config /序列化/目录的一个包。

配置元数据缓存

元数据的序列化器自动缓存来提高应用程序的性能。默认情况下,序列化器使用cache.system缓存池配置使用cache.system选择。

使一个名字转换器

的使用名字转换器服务可以被定义在配置使用name_converter选择。

内置的CamelCase转换器snake_case名称可以通过使用吗serializer.name_converter.camel_case_to_snake_case值:

  • YAML
  • XML
  • PHP
1 2 3 4 5
#配置/包/ framework.yaml框架:#……序列化器:name_converter:“serializer.name_converter.camel_case_to_snake_case”

更进一步的序列化器

API的平台提供了一个API系统支持以下格式:

它是建立在Symfony框架及其序列化器组件。ob娱乐下载它提供了定制的标准化者和一个定制的编码器,定制的元数据和缓存系统。

如果你想利用Symfony序列化器组件的全部威力,看看这个包是如何工作的。ob娱乐下载

这项工作,包括代码示例,许可下Creative Commons冲锋队3.0许可证。