可以使用注释指定序列化的定义,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”));

然后,创建你的组定义:

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
名称空间Acme;使用ob娱乐下载\组件\序列化器\注释\;MyObj{#(组([' group1 ', ' group2 ']))公共美元喷火;#(团体([' group4 ']))公共美元anotherProperty;#(团体([' group3 ']))公共函数getBar()/ /*方法支持{返回美元- >酒吧;}/ /……}

你现在只能序列化属性在你想要的组:

1 2 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 30
使用ob娱乐下载\组件\序列化器\标准化者\ObjectNormalizer;使用ob娱乐下载\组件\序列化器\序列化器;美元obj=MyObj ();美元obj- >foo =“foo”;美元obj- >anotherProperty =“anotherProperty”;美元obj- >setBar (“酒吧”);美元标准化者=ObjectNormalizer (美元classMetadataFactory);美元序列化器=序列化器([美元标准化者]);美元数据=美元序列化器- >正常化(美元obj,,(“组织”= >“group1”]);/ / $ data = [“foo”= >“foo”);美元methoda=美元序列化器- >denormalize ([“foo”= >“foo”,“anotherProperty”= >“anotherProperty”,“酒吧”= >“酒吧”),“MyObj”,,(“组织”= > [“group1”,“group3”]]);/ / $ methoda = MyObj (foo:“foo”栏:“酒吧”)/ /得到所有组,使用特殊的价值‘*’‘组织’美元obj3=美元序列化器- >denormalize ([“foo”= >“foo”,“anotherProperty”= >“anotherProperty”,“酒吧”= >“酒吧”),“MyObj”,,(“组织”= > [‘*’]]);/ / $ methoda = MyObj (foo:“foo”, anotherProperty:“anotherProperty”栏:“酒吧”)

只有属性不忽略(见下文)。如果一些序列化组织设置,只有属性允许可以使用这些组织。

至于团体,属性可以选择在序列化和反序列化过程。