ob娱乐下载
由 Sensio赞助实验室
菜单
  • 0b足球
  • 欧宝官网下载app
  • 截屏
  • ob直播app
  • 认证
  • 欧宝体育平台怎么样
  • 企业
  • 欧宝平台是合法的吗
  • obb体育
  1. 首页
  2. 欧宝官网下载app
  3. 如何使用序列化器
欧宝官网下载app 书 参考 包 ob直播app
搜索Algolia

目录

  • 安装
  • 使用序列化器服务
  • 添加标准化器和编码器
  • 使用序列化组注释
  • 配置元数据缓存
  • 启用名称转换器
  • 进一步使用序列化器

如何使用序列化器

编辑本页

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

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

如何使用序列化器

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

安装

在使用ob娱乐下载Symfony Flex,执行此命令安装序列化器ob娱乐下载Symfony包使用前:

1
$Composer需要symfonyob娱乐下载/serializer-pack

使用序列化器服务

一旦启用,序列化器服务可以被注入到任何需要它的服务中,也可以在控制器中使用:

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

或者你可以用序列化模板中的树枝过滤器:

1
{{object|serialize(format = 'json')}}

看到树枝参考获取更多信息。

5.3

一个序列化过滤器是在使用Serializer组件的Symfoob娱乐下载ny 5.3中引入的。

添加标准化器和编码器

启用后,序列化器服务将在容器中可用。它自带一套有用的编码器而且标准化者.

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

  • JSON:JsonEncoder
  • XML:XmlEncoder
  • CSV:CsvEncoder
  • YAML:YamlEncoder

以及以下归一化器:

  • ObjectNormalizer
  • DateTimeNormalizer
  • DateTimeZoneNormalizer
  • DateIntervalNormalizer
  • FormErrorNormalizer
  • DataUriNormalizer
  • JsonSerializableNormalizer
  • ArrayDenormalizer
  • ConstraintViolationListNormalizer
  • ProblemNormalizer

其他内置的标准化者自定义归一化器和/或编码器也可以通过标记为来加载serializer.normalizer而且serializer.encoder.还可以设置标记的优先级以决定匹配顺序。

谨慎

总是要确保加载DateTimeNormalizer当序列化DateTime或DateTimeImmutable类,以避免过多的内存使用和暴露内部细节。

使用序列化组注释

要使用注释,首先要通过sensioframeworkextrabundance添加对它们的支持:

1
$Composer需要sensio/framework-extra-bundle

接下来,添加@Groups注释致您的班级:

12 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\列(type="string", length=255) *@Groups({"show_product", "list_product"}) */私人$的名字;/ * * *@ORM\列(type =“整数”)*@Groups({}“show_product”)* /私人$描述;}

你现在可以选择在序列化时使用哪些组:

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

提示

的值组Key可以是单个字符串,也可以是字符串数组。

除了@Groups注释,Serializer组件也支持YAML或XML文件。当这些文件被存储在以下位置之一时,会自动加载:

  • 所有* .yaml而且* . xml文件配置/序列化器/目录中。
  • 的serialization.yaml或serialization.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”
1 2 3 4 5
<!——config/packages/framework.xml——> .xml<框架:配置><!——……--><框架:序列化器name-converter=“serializer.name_converter.camel_case_to_snake_case”/>框架:配置>
1 2 3 4 5 6
/ /配置/包/ framework.php使用ob娱乐下载\配置\FrameworkConfig;返回静态函数(FrameworkConfig$框架){$框架->序列化器()->nameConverter (“serializer.name_converter.camel_case_to_snake_case”);};

进一步使用序列化器

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

  • JSON-LD伴随着Hydra核心词汇
  • OpenAPIv2(以前的Swagger)和v3
  • GraphQL
  • JSON: API
  • 哈尔
  • JSON
  • XML
  • YAML
  • CSV

它构建在Symfony Framework及其Serob娱乐下载ializer组件之上。它提供了自定义规范化器、自定义编码器、自定义元数据和缓存系统。

如果您想充分利用Symfony Serializer组件的全部功能,请看看这个包是如何工作的ob娱乐下载。

  • 如何创建自定义编码器
  • 如何创建您的自定义规范化
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
我们与乌克兰站在一起.
版本:

ob娱乐下载Symfony 5.3是支持通过

把代码质量放在项目的核心位置

把代码质量放在项目的核心位置

ob娱乐下载Symfony代码性能分析

ob娱乐下载Symfony代码性能分析

↓我们的页脚现在使用乌克兰国旗的颜色,因为ob娱乐下载Symfony与乌克兰人民站在一起.

Yassine Hadj messaoud的化身,Symfony贡献者ob娱乐下载

谢谢Yassine Hadj messaoud作为Symfony的贡献ob娱乐下载者

1提交•4行改变了

查看所有贡献者帮助我们制造Symfonyob娱乐下载

成为Symfonyob娱乐下载的贡献者

成为社区的活跃部分,贡献想法,代码和错误修复。欧宝体育平台怎么样专家和新人都受到欢迎。

学习如何做出贡献

ob娱乐下载™是Symfony SAS的商标。ob娱乐下载版权所有.

  • 0b足球
    • ob娱乐下载交响乐一览
    • nba直播欧宝
    • 案例研究
    • ob娱乐下载Symfony的版本
    • 安全策略
    • Logo &截图
    • 商标和许可
    • ob娱乐下载symfony1遗留
  • 学习Symfob娱乐下载ony
    • ob娱乐下载Symfony文档
    • ob娱乐下载Symfony的书
    • 参考
    • 包
    • 最佳实践
    • 培训
    • 网络学习平台
    • 认证
  • 截屏
    • 学习Symfob娱乐下载ony
    • 学习PHP
    • 学习JavaScript
    • 学习Drupal
    • 学习RESTful api
  • 欧宝体育平台怎么样
    • ob娱乐下载SymfonyConnect
    • 支持
    • 如何参与
    • 行为准则
    • 活动和聚会
    • 使用Symfony的项目ob娱乐下载
    • 下载数据
    • 贡献者
    • 支持者
  • 博客
    • nba欧宝直播
    • 一周的交响乐ob娱乐下载
    • 案例研究
    • ob直播app
    • 欧宝体育平台怎么样
    • 会议
    • 多样性
    • 欧宝官网下载app
    • 生活在边缘
    • 释放
    • 安全警告
    • ob娱乐下载SymfonyInsight
    • 嫩枝
    • SensioLabs
  • 服务
    • SensioLabs服务
    • 培训开发人员
    • 管理项目质量
    • 提高项目绩效
    • 托管Symob娱乐下载fony项目
    部署在
遵循Symfoob娱乐下载ny
搜索Algolia