serializer

Library for (de-)serializing data of any complexity (supports JSON, and XML)

MIT License

Downloads
107.8M
Stars
2.3K
Committers
237
serializer - 3.1.0

Published by goetas over 5 years ago

Implemented enhancements:

Fixed bugs:

  • Fix for failing doctrine object constructor on embeddable class #1031 (notrix)

Closed issues:

  • Behavior serializeNull -> not always honored in 2.* (but was in 1.*) #1101
  • Support for iterable #1094
  • Prevent deserialisation with missing required field #1090
  • Allow using @XmlValue together with @Accessor/@AccessType #1083
  • Support *.yaml extension #1077

Merged pull requests:

serializer - 3.0.1

Published by goetas over 5 years ago

Fixed bugs:

  • Do not throw exception when visiting null in custom handler #1076 (goetas)
serializer - 3.0.0

Published by goetas over 5 years ago

Upgrade notes

How to upgrade to 3.0.0 is explained in https://github.com/schmittjoh/serializer/blob/master/UPGRADING.md

  • Upgrading from 2.x to 3.0 should require almost no effort as only one changes introduced in 2.x has been reverted as it was in 1.x
  • Upgrading from 1.x to 3.0 requires to follow the same steps as the upgrade from 1.x to 2.x, skipping only the "deeper branch group exclusion strategy"

Detailed changes:

Backward incompatible changes:

  • Revert v2 nested groups and release 3.0 #1071 (goetas)

Implemented enhancements:

Merged pull requests:

Closed issues:

  • [RFC] revert #946 and release new major #1058
serializer - 1.14.0

Published by goetas over 5 years ago

Implemented enhancements:

  • Discriminator property serialization when parent is in discriminator map for v1 #982 (supersmile2009)
  • Expose and test GroupsExclusionStrategy::getGroupsFor() #1069 (goetas)
serializer - 2.3.0

Published by goetas over 5 years ago

Implemented enhancements:

  • add options property to XmlDeserializationVisitorFactory and XmlDeserializationVisitor, propagate defined value from factory to simplexml_load_string call #1068 (kopeckyales)

Closed issues:

  • Override existing property with another #1067
  • disabling cdata by default #1065
  • unwrap child class instance #1064
  • Make JsonDeserializationVisitor extendable #1055

Merged pull requests:

  • doc update: registerHandler() example #1072 (cebe)
  • Updated suggestion for JsonSerializationVisitor::addData replacement #1066 (theoboldt)
  • Add fix to UPGRADING.md #1062 (Jean85)
serializer - 2.2.0

Published by goetas over 5 years ago

Implemented enhancements:

Fixed bugs:

  • xmlRootPrefix missing from unserialized metadata #1050
  • Non-locale aware encoding of doubles, closes #1041 #1042 (Grundik)

Closed issues:

  • Using @Until and @Since on class level #1048
  • Add use of annotation registry to docs #1044
  • Values of type "double" should not use locale-specific encoding #1041
  • Serialize Generator #1023

Merged pull requests:

serializer - 2.1.0

Published by goetas almost 6 years ago

Implemented enhancements:

Closed issues:

  • Compile error Declaration of [...] must be compatible with [...] #1024
  • Exclude field for depth #1022
  • Add class properties inheritance for extending classes (e.g. XmlRoot) #396

Merged pull requests:

serializer - 2.0.2

Published by goetas almost 6 years ago

Fixed bugs:

  • jms serialzier 2.0 Error in debug mode #1018
  • AbstractDoctrineTypeDriver::normalizeFieldType() must be of the type string, null given #1015
  • internal classes have false in reflection::getFilename() #1013 (chregu)

Closed issues:

  • DateTime converted to ArrayObject instead of string in custom visitor class #1017

Merged pull requests:

serializer - 2.0.1

Published by goetas almost 6 years ago

Fixed bugs:

  • BC Break on deserialize with non existing properties in JSON payload? #1011

Merged pull requests:

serializer - 2.0.0

Published by goetas almost 6 years ago

Upgrading notes available at https://github.com/schmittjoh/serializer/blob/master/UPGRADING.md
More info about it on https://www.goetas.com/blog/whats-new-in-jmsserializer-v20/

Full changelog:

Breaking changes:

  • I want to change the default group used when overriding groups of deeper branches #898
  • NullAwareVisitorInterface::isNull second argument #823
  • Simplify deep group exclusion strategy #946 (goetas)
  • Discriminator property serialization when parent is in discriminator map #879 (supersmile2009)
  • Move serialization info to the serialization context class #1006 (goetas)

Implemented enhancements:

  • Upgrade to Doctrine CS 5.0 #1002 (Majkl578)
  • Add travis build for docs #997 (kunicmarko20)
  • Change license to MIT #950
  • Do not instantiate visitors in the serialization builder #613
  • Possible to prefix the root element while serializing? #506
  • Add logo #976 (goetas)
  • Implementation deserialization of Inline property #974 (scyzoryck)
  • Code style #971 (goetas)
  • Make access strategies aware of the context #962 (goetas)
  • Distinguish between metadata errors and run time errors #948 (goetas)
  • Allow inline lists and maps #944 (goetas)
  • Move property ordering strategy out of Metadata #938 (Majkl578)
  • Do not use property metadata to get/set object values #934 (goetas)
  • Type hints and final clases #930 (goetas)
  • Added graph navigator factories #929 (goetas)
  • No global graph navigator #925 (goetas)
  • Allow instance of event filtering #924 (goetas)
  • Move accessors to graph navigator #923 (goetas)
  • Make PHPUnit stricter, drop redundant defaults #919 (Majkl578)
  • Base exception should extend Throwable #911 (Majkl578)
  • Port TypeParser to Hoa\Compiler #900 (Majkl578)
  • [2.0] better handling when something gets excluded #895 (goetas)

Fixed bugs:

  • XmlDeserializationVisitor references undefined property PropertyMetadata::$reflection #958
  • Invalid sprintf usage in DefaultAccessorStrategy #957
  • Serializer::handleDeserializeResult() changes the result after using Visitor::visitArray() #710
  • setGroups add new ExclusionStrategy instead of overwriting it #486
  • GraphNavigator using \LogicException without serializer namespace #473
  • Serialize doctrine entities load linked entities even if the max depth should stop this behavior #407
  • HandlerCallback inconsistent behaviour #324
  • Max Depth possible issue #272
  • MaxDepth shows empty array property #148
  • Custom Serialization handlers give an invalid result on top level #95
  • Deserialization to ArrayCollection not working as expected #9
  • Avoid duplicate exclusion strategies in the context #922 (goetas)

Closed issues:

  • Revert fix for #43 (JSON representation of empty objects) #942
  • Update jms/metadata #936
  • Property access should not rely on PropertyMetadata but only on AccessorStrategyInterface #932
  • Adopt some coding standard #914
  • Replace in-house EventDispatcher by an existing one #912
  • Risky tests in master #910
  • Move resolveMetadata from the GraphNavigator #906
  • Remove Context::getDirection() #905
  • [2.0 proposal] Moving non-essential components to separate packages #902
  • [2.0 proposal] Splitting Navigator/Visitor #901
  • Virtual property is excluded when the name equals to an excluded property #896
  • Consider @var annotation for type inference when deserializing #893
  • Consider hoa/compiler #892
  • setSerialiseNull(true) + exclusion strategies still include data #852
  • Serializing a self-referencing object returns null #845
  • Allow generators as return type for SubscribingHandlerInterface::getSubscribingMethods #832
  • Add control to deserialization of null values #821
  • serialize null should be a boolean in the context #740
  • Allow data access to Property naming strategy #717
  • Custom handler works with array of objects but fails to serialize one object #700
  • Deprecate set*ContextFactory in the Serializer to keep it immutable #691
  • Remove Symfony Validator <2.6 support #687
  • Remove PHP metadata driver #686
  • Prevent doctrine proxy loading for virtual types by default #685
  • Inconsistency between serializing arrays and objects key names #655
  • Can't hint interface using @Type to trigger custom handler #631
  • Event Listeners are "lowercasing" class names for event match #624
  • JSON/YAML encoding changes #617
  • Remove PhpCollection and PhpOption and use arrays instead #616
  • Remove handler callback #615
  • MaxDepth exclusion strategy for OneToMany (ArrayCollection) type triggers too many doctrine queries. #500
  • Permit (optional) inheritance of HandlerCallback functions #499
  • Serialized name based on the format #456
  • obsolete strategies when calling Context::setVersion/setGroups more than once #98

Merged pull requests:

serializer - 2.0.0-RC1

Published by goetas about 6 years ago

Merged pull requests:

serializer - 2.0.0-beta1

Published by goetas about 6 years ago

After more than a two years of work (the first commit was on July 20 2016), jms/serializer v2.0 is going to see the light.
This is the first beta release. More info about it on https://www.goetas.com/blog/whats-new-in-jmsserializer-v20/

Breaking changes:

  • I want to change the default group used when overriding groups of deeper branches #898
  • NullAwareVisitorInterface::isNull second argument #823
  • Simplify deep group exclusion strategy #946 (goetas)
  • Discriminator property serialization when parent is in discriminator map #879 (supersmile2009)

Implemented enhancements:

  • Change license to MIT #950
  • Do not instantiate visitors in the serialization builder #613
  • Possible to prefix the root element while serializing? #506
  • Add logo #976 (goetas)
  • Implementation deserialization of Inline property #974 (scyzoryck)
  • Code style #971 (goetas)
  • Make access strategies aware of the context #962 (goetas)
  • Distinguish between metadata errors and run time errors #948 (goetas)
  • Allow inline lists and maps #944 (goetas)
  • Move property ordering strategy out of Metadata #938 (Majkl578)
  • Do not use property metadata to get/set object values #934 (goetas)
  • Type hints and final clases #930 (goetas)
  • Added graph navigator factories #929 (goetas)
  • No global graph navigator #925 (goetas)
  • Allow instance of event filtering #924 (goetas)
  • Move accessors to graph navigator #923 (goetas)
  • Make PHPUnit stricter, drop redundant defaults #919 (Majkl578)
  • Base exception should extend Throwable #911 (Majkl578)
  • Port TypeParser to Hoa\Compiler #900 (Majkl578)
  • [2.0] better handling when something gets excluded #895 (goetas)

Fixed bugs:

  • XmlDeserializationVisitor references undefined property PropertyMetadata::$reflection #958
  • Invalid sprintf usage in DefaultAccessorStrategy #957
  • Serializer::handleDeserializeResult() changes the result after using Visitor::visitArray() #710
  • setGroups add new ExclusionStrategy instead of overwriting it #486
  • GraphNavigator using \LogicException without serializer namespace #473
  • Serialize doctrine entities load linked entities even if the max depth should stop this behavior #407
  • HandlerCallback inconsistent behaviour #324
  • Max Depth possible issue #272
  • MaxDepth shows empty array property #148
  • Custom Serialization handlers give an invalid result on top level #95
  • Deserialization to ArrayCollection not working as expected #9
  • Avoid duplicate exclusion strategies in the context #922 (goetas)

Closed issues:

  • Revert fix for #43 (JSON representation of empty objects) #942
  • Update jms/metadata #936
  • Property access should not rely on PropertyMetadata but only on AccessorStrategyInterface #932
  • Adopt some coding standard #914
  • Replace in-house EventDispatcher by an existing one #912
  • Risky tests in master #910
  • Move resolveMetadata from the GraphNavigator #906
  • Remove Context::getDirection() #905
  • [2.0 proposal] Moving non-essential components to separate packages #902
  • [2.0 proposal] Splitting Navigator/Visitor #901
  • Virtual property is excluded when the name equals to an excluded property #896
  • Consider @var annotation for type inference when deserializing #893
  • Consider hoa/compiler #892
  • setSerialiseNull(true) + exclusion strategies still include data #852
  • Serializing a self-referencing object returns null #845
  • Allow generators as return type for SubscribingHandlerInterface::getSubscribingMethods #832
  • Add control to deserialization of null values #821
  • serialize null should be a boolean in the context #740
  • Allow data access to Property naming strategy #717
  • Custom handler works with array of objects but fails to serialize one object #700
  • Deprecate set*ContextFactory in the Serializer to keep it immutable #691
  • Remove Symfony Validator <2.6 support #687
  • Remove PHP metadata driver #686
  • Prevent doctrine proxy loading for virtual types by default #685
  • Inconsistency between serializing arrays and objects key names #655
  • Can't hint interface using @Type to trigger custom handler #631
  • Event Listeners are "lowercasing" class names for event match #624
  • JSON/YAML encoding changes #617
  • Remove PhpCollection and PhpOption and use arrays instead #616
  • Remove handler callback #615
  • MaxDepth exclusion strategy for OneToMany (ArrayCollection) type triggers too many doctrine queries. #500
  • Permit (optional) inheritance of HandlerCallback functions #499
  • Serialized name based on the format #456
  • obsolete strategies when calling Context::setVersion/setGroups more than once #98

Merged pull requests:

serializer - 1.13.0

Published by goetas about 6 years ago

Implemented enhancements:

Fixed bugs:

  • Exception on deserialization using XML and exclude-if #975

Closed issues:

  • Serialization fails if root element has custom handler #961
  • Make inline property work with deserialization too #937

Merged pull requests:

  • Serializer 2.0 compatibility features #967 (goetas)
serializer - 1.12.1

Published by goetas over 6 years ago

1.12.1 (2018-06-01)

Fixed bugs:

  • Accessing static property as non static #960
  • creating JMS\Serializer\Metadata->closureAccessor on internal class failed #959
serializer - 1.12.0

Published by goetas over 6 years ago

Implemented enhancements:

  • Add support for namespaced XML attribute on Discriminator + Tests #909 (ArthurJam)
  • Introduce graph navigator interface #876 (goetas)
  • Use Bind closure accessor #875 (goetas)

Fixed bugs:

  • DoctrineObjectConstructor and deserialize not work #806
  • [Symfony] DoctrineObjectorConstructor always creates new entity because of camel case to snake case conversion #734
  • Fix DoctrineObjectConstructor deserialization with naming strategies #951 (re2bit)

Closed issues:

  • Feature proposal: dynamic property serialized name #225
  • Mapping request payload works for JSON but not for XML #820

Merged pull requests:

serializer - v1.11.0

Published by goetas over 6 years ago

Implemented enhancements:

Fixed bugs:

  • Exception thrown for non-existant accessor to an excluded property #862
  • Support non-namespaced lists in namespaced XML #851 (bertterheide)

Closed issues:

  • Context Group not working #865
  • Not all virtual properties are serialized #864
  • DeserializedName #857
  • Annotation does not exist, or could not be auto-loaded. #855
  • [Question] Serialization of primitive types #853
  • Empty list when deserializing namespaced XML with children that are not namespaced #850
  • XmlList(skipWhenEmpty=true) or @SkipWhenEmpty() does not work #847
  • DateHandler Timezone ignored on deserialization #457

Merged pull requests:

  • Drop HHVM support #869 (goetas)
  • Allow excluded private properties to not have a getter acc… #863 (0mars)
  • Solve php 7.2 deprecations #860 (goetas)
  • Fixed issue where timezone is lost when creating DateTime from unix timestamp #835 (goetas)
serializer - v1.10.0 (support PSR-11 compatible DI containers)

Published by goetas almost 7 years ago

1.10.0

Implemented enhancements:

  • support PSR-11 compatible DI containers #844 (xabbuh)

Closed issues:

  • Serialize using jsonSerialize() if object implements JsonSerializable #846
  • ExclusionStrategy backward compatibility break #843
  • @MaxDepth jms/serializer-bundle 2.2 #842
serializer - v1.9.2

Published by goetas almost 7 years ago

Fixed bugs:

Closed issues:

  • DateTime format documentation #836
  • Deserialization not working with camelCase #831

Merged pull requests:

  • Fix documentation syntax errors on available types #839 (andy-morgan)
  • Improve documentation about default DateTime format #838 (enumag)
serializer - v1.9.1

Published by goetas almost 7 years ago

Fixed bugs:

  • Dynamic exclusion strategy, Variable "object" is not valid #826

Closed issues:

  • Allow DateTime or Null #779

Merged pull requests:

  • Alow to use "object" var in expressions when deserializing #827 (goetas)
serializer - v1.9.0

Published by goetas about 7 years ago

This release comes with few bugfixes and minor other change to allow a more smooth development when dealing with environment without translators, xml edge cases, added bool alias for boolean types, ability to exclude the annotation driver ad many other.

Implemented enhancements:

  • Doctrine LazyCriteriaCollection not supported #814
  • Do not require the translator #824 (goetas)
  • Added mapping for guid type #802 (develth)
  • Added translation domain to FormErrorHandler #783 (prosalov)

Fixed bugs:

  • Serializer fails if there is no AnnotationDriver in the DriverChain instance #815
  • Evaluate XML xsi:nil="1" to null #799 (Bouwdie)

Closed issues:

  • Empty array removed from XML serialization #816
  • XML Discriminator tags don't work in YAML metadata #811
  • Launching phpunit does not execute any test #809
  • Add "bool" Annotation/Type #807
  • Add support for overriding default annotation driver configuration #804
  • Add description to PropertyMetadata? #800

Merged pull requests: