序列化的定义可以使用注释、XML或YAML来指定。的ClassMetadataFactory归一化器将使用的对象必须知道要使用的格式。
对象的初始化方法的代码如下ClassMetadataFactory对于每种格式:
PHP文件中的注释:
1 2 3 4 5
使用学说\常见的\注释\AnnotationReader;使用ob娱乐下载\组件\序列化器\映射\工厂\ClassMetadataFactory;使用ob娱乐下载\组件\序列化器\映射\加载程序\AnnotationLoader;$classMetadataFactory=新ClassMetadataFactory (新AnnotationLoader (新AnnotationReader ()));
YAML文件:
1 2 3 4
使用ob娱乐下载\组件\序列化器\映射\工厂\ClassMetadataFactory;使用ob娱乐下载\组件\序列化器\映射\加载程序\YamlFileLoader;$classMetadataFactory=新ClassMetadataFactory (新YamlFileLoader (“/道路/ /你/ definition.yaml”));
XML文件:
1 2 3 4
使用ob娱乐下载\组件\序列化器\映射\工厂\ClassMetadataFactory;使用ob娱乐下载\组件\序列化器\映射\加载程序\XmlFileLoader;$classMetadataFactory=新ClassMetadataFactory (新XmlFileLoader (“/道路/ /你/ definition.xml”));
然后,创建你的组定义:
- 注释
- 属性
- YAML
- XML
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20 21
名称空间Acme;使用ob娱乐下载\组件\序列化器\注释\组;类MyObj{/ * * *@Groups({"group1", "group2"}) */公共$喷火;/ * * *@Groups(“group3”)* /公共函数getBar()//是*方法是也支持{返回$这->酒吧;}/ /……}
你现在只能序列化你想要的组中的属性:
12 3 4 5 6 7 8 9 10 11 12 13 14 16 17 18 19 20
使用ob娱乐下载\组件\序列化器\标准化者\ObjectNormalizer;使用ob娱乐下载\组件\序列化器\序列化器;$obj=新MyObj ();$obj->foo =“foo”;$obj->setBar (“酒吧”);$标准化者=新ObjectNormalizer ($classMetadataFactory);$序列化器=新序列化器([$标准化者]);$数据=$序列化器->正常化($obj,零, (“组织”= >“group1”]);// $data = ['foo' => 'foo'];$methoda=$序列化器->denormalize ([“foo”= >“foo”,“酒吧”= >“酒吧”],“MyObj”,零, (“组织”= > [“group1”,“group3”]]);// $obj2 = MyObj(foo: 'foo', bar: 'bar')