BlogPost.php 2.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061
  1. <?php
  2. use JMS\Serializer\Metadata\ClassMetadata;
  3. use JMS\Serializer\Metadata\PropertyMetadata;
  4. $metadata = new ClassMetadata('JMS\Serializer\Tests\Fixtures\BlogPost');
  5. $metadata->xmlRootName = 'blog-post';
  6. $metadata->registerNamespace('http://example.com/namespace');
  7. $metadata->registerNamespace('http://schemas.google.com/g/2005', 'gd');
  8. $metadata->registerNamespace('http://www.w3.org/2005/Atom', 'atom');
  9. $metadata->registerNamespace('http://purl.org/dc/elements/1.1/', 'dc');
  10. $pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'id');
  11. $pMetadata->setType('string');
  12. $pMetadata->groups = array('comments','post');
  13. $pMetadata->xmlElementCData = false;
  14. $metadata->addPropertyMetadata($pMetadata);
  15. $pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'title');
  16. $pMetadata->setType('string');
  17. $pMetadata->groups = array('comments','post');
  18. $pMetadata->xmlNamespace = "http://purl.org/dc/elements/1.1/";
  19. $metadata->addPropertyMetadata($pMetadata);
  20. $pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'createdAt');
  21. $pMetadata->setType('DateTime');
  22. $pMetadata->xmlAttribute = true;
  23. $metadata->addPropertyMetadata($pMetadata);
  24. $pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'published');
  25. $pMetadata->setType('boolean');
  26. $pMetadata->serializedName = 'is_published';
  27. $pMetadata->groups = array('post');
  28. $pMetadata->xmlAttribute = true;
  29. $metadata->addPropertyMetadata($pMetadata);
  30. $pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'etag');
  31. $pMetadata->setType('string');
  32. $pMetadata->groups = array('post');
  33. $pMetadata->xmlAttribute = true;
  34. $pMetadata->xmlNamespace = 'http://schemas.google.com/g/2005';
  35. $metadata->addPropertyMetadata($pMetadata);
  36. $pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'comments');
  37. $pMetadata->setType('ArrayCollection<JMS\Serializer\Tests\Fixtures\Comment>');
  38. $pMetadata->xmlCollection = true;
  39. $pMetadata->xmlCollectionInline = true;
  40. $pMetadata->xmlEntryName = 'comment';
  41. $pMetadata->groups = array('comments');
  42. $metadata->addPropertyMetadata($pMetadata);
  43. $pMetadata = new PropertyMetadata('JMS\Serializer\Tests\Fixtures\BlogPost', 'author');
  44. $pMetadata->setType('JMS\Serializer\Tests\Fixtures\Author');
  45. $pMetadata->groups = array('post');
  46. $pMetadata->xmlNamespace = 'http://www.w3.org/2005/Atom';
  47. $metadata->addPropertyMetadata($pMetadata);
  48. return $metadata;