Serialization API 数据序列化和反序列化

admin 提交于 周三, 06/07/2023 - 15:21

Serialization API 数据序列化和反序列化

Drupal 中的 序列化(serialize),是指把 PHP 对象转换为 jsonXMLYAMLCSV 之类的文本格式数据的过程。 反序列化(deserialize),即是把文本格式数据转换为特定类型 PHP 对象的过程,也就是反过来。

Drupal 的 Serialization API 是基于 Symfony 的 Serializer 组件 的,所以其官方文档很大程度上就是 Drupal 的 Serialization API 的文档, 有必要先阅读一下。

常规化器 与 编码器

序列化的过程被分别两步:

  • 常规化(normalize):把 PHP 对象转换为 PHP 数组(Array)。
  • 编码(encode):把 PHP 数组(Array)转换为目标文本格式。

从图中可以看到,不管是 序列化 还是 反序列化,都会以 PHP 数组为中间格式, 反序列化 过程的两个步骤是:

  • 解码(decode):把 目标文本格式数据 转换为 PHP 数组(Array)。
  • 反常规化(denormalize):把 PHP 数组(Array) 转换为 PHP 对象。

完成这两个步骤的组件,分别被称为 常规化器(normalizer)编码器(encoder), 它们分别负责 常规化 与 反常规化编码 与 解码