如何创建自定义编码器
编辑本页如何创建自定义编码器
的序列化器组件使用归一化器将任何数据转换为数组。然后,通过杠杆编码器,该数据可以转换为任何数据结构(例如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娱乐下载\组件\Yaml\Yaml;类YamlEncoder实现了EncoderInterface,DecoderInterface{公共函数编码($数据、字符串$格式数组,$上下文= []){返回Yaml::转储($数据);}公共函数supportsEncoding(字符串$格式){返回yaml的===$格式;}公共函数解码(字符串$数据、字符串$格式数组,$上下文= []){返回Yaml::解析($数据);}公共函数supportsDecoding(字符串$格式){返回yaml的===$格式;}}
提示
如果你需要美元的上下文
在你的supportsDecoding
或supportsEncoding
方法,确保实现ob娱乐下载
或ob娱乐下载
相应的行动。
在你的应用中注册它
如果您使用Symfony框架。ob娱乐下载那么你可能想要在你的应用程序中注册这个编码器作为一个服务默认的服务。yaml的配置,这是自动完成的!
提示
如果你不吸毒的话可以使用autoconfigure,请确保将您的类注册为服务并标记为serializer.encoder
.
现在您可以序列化和反序列化YAML了!
此工作,包括代码示例,是根据创作共用BY-SA 3.0许可证。