This repository has been archived on 2023-08-20. You can view files and clone it, but cannot push or open issues or pull requests.
symfony/src/Symfony/Component/Serializer/CHANGELOG.md
Nicolas Grekas 6e34963b3d Merge branch '3.4' into 4.0
* 3.4:
  [YAML] Issue #26065: leading spaces in YAML multi-line string literals
  [Bridge\PhpUnit] Exit as late as possible
  [Bridge\PhpUnit] Cleanup BC layer
  [PhpBridge] add PHPUnit 7 support to SymfonyTestsListener
  [Lock] Log already-locked errors as "notice" instead of "warning"
  add context to serialize and deserialize
  Update Repository Symlink Helper
  Document explicitly that dotfiles and vcs files are ignored by default
  [HttpKernel] don't try to wire Request argument with controller.service_arguments
  Make kernel build time optionally deterministic
  Use 0 for unlimited expiry
  [Routing] fix typo
  Bump default PHPUnit version from 6.3 to 6.5
  do not mock the container builder in tests
  [Cache][WebProfiler] fix collecting cache stats with sub-requests + allow clearing calls
2018-02-11 18:17:44 +01:00

5.1 KiB

CHANGELOG

4.0.0

  • removed the SerializerAwareEncoder and SerializerAwareNormalizer classes, use the SerializerAwareTrait instead
  • removed the Serializer::$normalizerCache and Serializer::$denormalizerCache properties
  • added an optional string $format = null argument to AbstractNormalizer::instantiateObject
  • added an optional array $context = array() to Serializer::supportsNormalization, Serializer::supportsDenormalization, Serializer::supportsEncoding and Serializer::supportsDecoding

3.4.0

  • added AbstractObjectNormalizer::DISABLE_TYPE_ENFORCEMENT context option to disable throwing an UnexpectedValueException on a type mismatch
  • added support for serializing DateInterval objects
  • added getter for extra attributes in ExtraAttributesException
  • improved CsvEncoder to handle variable nested structures
  • CSV headers can be passed to the CsvEncoder via the csv_headers serialization context variable
  • added $context when checking for encoding, decoding and normalizing in Serializer

3.3.0

  • added SerializerPass

3.1.0

  • added support for serializing objects that implement JsonSerializable
  • added the DenormalizerAwareTrait and NormalizerAwareTrait traits to support normalizer/denormalizer awareness
  • added the DenormalizerAwareInterface and NormalizerAwareInterface interfaces to support normalizer/denormalizer awareness
  • added a PSR-6 compatible adapter for caching metadata
  • added a MaxDepth option to limit the depth of the object graph when serializing objects
  • added support for serializing SplFileInfo objects
  • added support for serializing objects that implement DateTimeInterface
  • added AbstractObjectNormalizer as a base class for normalizers that deal with objects
  • added support to relation deserialization

2.7.0

  • added support for serialization and deserialization groups including annotations, XML and YAML mapping.
  • added AbstractNormalizer to factorise code and ease normalizers development
  • added circular references handling for PropertyNormalizer
  • added support for a context key called object_to_populate in AbstractNormalizer to reuse existing objects in the deserialization process
  • added NameConverterInterface and CamelCaseToSnakeCaseNameConverter
  • [DEPRECATION] GetSetMethodNormalizer::setCamelizedAttributes() and PropertyNormalizer::setCamelizedAttributes() are replaced by CamelCaseToSnakeCaseNameConverter
  • [DEPRECATION] the Exception interface has been renamed to ExceptionInterface
  • added ObjectNormalizer leveraging the PropertyAccess component to normalize objects containing both properties and getters / setters / issers / hassers methods.
  • added xml_type_cast_attributes context option for allowing users to opt-out of typecasting xml attributes.

2.6.0

  • added a new serializer: PropertyNormalizer. Like GetSetMethodNormalizer, this normalizer will map an object's properties to an array.
  • added circular references handling for GetSetMethodNormalizer

2.5.0

  • added support for is.* getters in GetSetMethodNormalizer

2.4.0

  • added $context support for XMLEncoder.
  • [DEPRECATION] JsonEncode and JsonDecode where modified to throw an exception if error found. No need for get*Error() functions

2.3.0

  • added GetSetMethodNormalizer::setCamelizedAttributes to allow calling camel cased methods for underscored properties

2.2.0

  • [BC BREAK] All Serializer, Normalizer and Encoder interfaces have been modified to include an optional $context array parameter.
  • The XML Root name can now be configured with the xml_root_name parameter in the context option to the XmlEncoder.
  • Options to json_encode and json_decode can be passed through the context options of JsonEncode and JsonDecode encoder/decoders.

2.1.0

  • added DecoderInterface::supportsDecoding(), EncoderInterface::supportsEncoding()

  • removed NormalizableInterface::denormalize(), NormalizerInterface::denormalize(), NormalizerInterface::supportsDenormalization()

  • removed normalize() denormalize() encode() decode() supportsSerialization() supportsDeserialization() supportsEncoding() supportsDecoding() getEncoder() from SerializerInterface

  • Serializer now implements NormalizerInterface, DenormalizerInterface, EncoderInterface, DecoderInterface in addition to SerializerInterface

  • added DenormalizableInterface and DenormalizerInterface

  • [BC BREAK] changed GetSetMethodNormalizer's key names from all lowercased to camelCased (e.g. mypropertyvalue to myPropertyValue)

  • [BC BREAK] convert the item XML tag to an array

    <?xml version="1.0"?>
    <response>
        <item><title><![CDATA[title1]]></title></item><item><title><![CDATA[title2]]></title></item>
    </response>
    

    Before:

     Array()
    

    After:

     Array(
         [item] => Array(
             [0] => Array(
                 [title] => title1
             )
             [1] => Array(
                 [title] => title2
             )
         )
     )