如何创建自定义编码器

编辑本页

如何创建自定义编码器

序列化器组件使用归一化器将任何数据转换为数组。然后,通过杠杆编码器,该数据可以转换为任何数据结构(例如JSON)。

组件提供了几个内置编码器在序列化器组件中但您可能希望使用另一种不受支持的结构。

创建一个新的编码器

假设您想序列化和反序列化YAML。为此,您必须创建自己的编码器使用Yaml组件

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
/ / src /序列化器/ YamlEncoder.php名称空间应用程序序列化器使用ob娱乐下载组件序列化器编码器DecoderInterface使用ob娱乐下载组件序列化器编码器EncoderInterface使用ob娱乐下载组件YamlYamlYamlEncoder实现了EncoderInterfaceDecoderInterface{公共函数编码数据、字符串格式数组,上下文= []){返回Yaml::转储(数据);}公共函数supportsEncoding(字符串格式{返回yaml的===格式;}公共函数解码(字符串数据、字符串格式数组,上下文= []){返回Yaml::解析(数据);}公共函数supportsDecoding(字符串格式{返回yaml的===格式;}}

提示

如果你需要美元的上下文在你的supportsDecodingsupportsEncoding方法,确保实现ob娱乐下载\组件\序列化器\编码器\ ContextAwareDecoderInterfaceob娱乐下载\组件\序列化器\编码器\ ContextAwareEncoderInterface相应的行动。

在你的应用中注册它

如果您使用Symfony框架。ob娱乐下载那么你可能想要在你的应用程序中注册这个编码器作为一个服务默认的服务。yaml的配置,这是自动完成的!

提示

如果你不吸毒的话可以使用autoconfigure,请确保将您的类注册为服务并标记为serializer.encoder

现在您可以序列化和反序列化YAML了!

此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。
ob娱乐下载Symfony 6.0支持通过SensioLabs