0

我有一堆对象,我需要能够在 JSON、PHP 等中序列化。我有 JSONSerializer 之类的东西,并且显然有 serialize() 可用。现在我仍然需要对象特定的逻辑来将对象转换为可以提供给 JSONSerializer 或 serialize() 的东西。基本上要么是原始类型,要么是仅包含匹配此条件的元素的数组。

两个问题:

  1. 在序列化之前如何调用这一步?“阵列化”?我正在考虑给我的对象一个 toArray() 方法。我还希望他们实现一些指定此方法的接口?有人比“Arrayable”有更好的主意吗?

  2. 我怎样才能最好地进行反序列化?我可以在每个对象中有一个静态的 newFromArray 方法。虽然不喜欢静态代码。关于可以从“数组化”构造给定类型对象的工厂有什么意见吗?

注意:这需要与 PHP 5.3 一起使用。

4

1 回答 1

0

Symfony 序列化器组件为这两个问题提供了一个答案。它将从对象到数组的步骤称为“规范化”和反向的“非规范化”。

对于“反序列化器”或“反规范化器”的构造,我发现创建一个抽象工厂非常有用。它解决了构造问题,并且可以使用户不知道他们正在使用哪个确切的解串器。这方面的一个例子是这个基于序列化组件的反序列​​化器工厂

于 2013-11-13T22:54:22.103 回答