* 4.1: fixed tests fixed CS fixed CS fixed CS fixed short array CS in comments fixed CS in ExpressionLanguage fixtures fixed CS in generated files fixed CS on generated container files fixed CS on Form PHP templates fixed CS on YAML fixtures fixed fixtures switched array() to []
8.3 KiB
CHANGELOG
4.2.0
- using the default context is the new recommended way to configure normalizers and encoders
- added a
skip_null_values
context option to not serialize properties with anull
values AbstractNormalizer::handleCircularReference
is now final and receives two optional extra arguments: the format and the context- added support for XML comment encoding (encoding
['#comment' => ' foo ']
results<!-- foo -->
) - added optional
int[] $encoderIgnoredNodeTypes
argument toXmlEncoder::__construct
to configure node types to be ignored during encoding - added
AdvancedNameConverterInterface
to access the class, the format and the context in a name converter - the
AbstractNormalizer::handleCircularReference()
method will have two new$format
and$context
arguments in version 5.0, not defining them is deprecated - deprecated creating a
Serializer
with normalizers which do not implement eitherNormalizerInterface
orDenormalizerInterface
- deprecated creating a
Serializer
with normalizers which do not implement eitherNormalizerInterface
orDenormalizerInterface
- deprecated creating a
Serializer
with encoders which do not implement eitherEncoderInterface
orDecoderInterface
- added the optional
$objectClassResolver
argument inAbstractObjectNormalizer
andObjectNormalizer
constructor - added
MetadataAwareNameConverter
to configure the serialized name of properties through metadata YamlEncoder
now handles the.yml
extension tooAbstractNormalizer::$circularReferenceLimit
,AbstractNormalizer::$circularReferenceHandler
,AbstractNormalizer::$callbacks
,AbstractNormalizer::$ignoredAttributes
,AbstractNormalizer::$camelizedAttributes
,AbstractNormalizer::setCircularReferenceLimit()
,AbstractNormalizer::setCircularReferenceHandler()
,AbstractNormalizer::setCallbacks()
andAbstractNormalizer::setIgnoredAttributes()
are deprecated, use the default context instead.AbstractObjectNormalizer::$maxDepthHandler
andAbstractObjectNormalizer::setMaxDepthHandler()
are deprecated, use the default context instead.- passing configuration options directly to the constructor of
CsvEncoder
,JsonDecode
andXmlEncoder
is deprecated since Symfony 4.2, use the default context instead.
4.1.0
- added
CacheableSupportsMethodInterface
for normalizers and denormalizers that use only the type and the format in theirsupports*()
methods - added
MissingConstructorArgumentsException
new exception for deserialization failure of objects that needs data insertion in constructor - added an optional
default_constructor_arguments
option of context to specify a default data in case the object is not initializable by its constructor because of data missing - added optional
bool $escapeFormulas = false
argument toCsvEncoder::__construct
- added
AbstractObjectNormalizer::setMaxDepthHandler
to set a handler to call when the configured maximum depth is reached - added optional
int[] $ignoredNodeTypes
argument toXmlEncoder::__construct
. XML decoding now ignores comment node types by default. - added
ConstraintViolationListNormalizer
4.0.0
- removed the
SerializerAwareEncoder
andSerializerAwareNormalizer
classes, use theSerializerAwareTrait
instead - removed the
Serializer::$normalizerCache
andSerializer::$denormalizerCache
properties - added an optional
string $format = null
argument toAbstractNormalizer::instantiateObject
- added an optional
array $context = []
toSerializer::supportsNormalization
,Serializer::supportsDenormalization
,Serializer::supportsEncoding
andSerializer::supportsDecoding
3.4.0
- added
AbstractObjectNormalizer::DISABLE_TYPE_ENFORCEMENT
context option to disable throwing anUnexpectedValueException
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 thecsv_headers
serialization context variable - added
$context
when checking for encoding, decoding and normalizing inSerializer
3.3.0
- added
SerializerPass
3.1.0
- added support for serializing objects that implement
JsonSerializable
- added the
DenormalizerAwareTrait
andNormalizerAwareTrait
traits to support normalizer/denormalizer awareness - added the
DenormalizerAwareInterface
andNormalizerAwareInterface
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
inAbstractNormalizer
to reuse existing objects in the deserialization process - added
NameConverterInterface
andCamelCaseToSnakeCaseNameConverter
- [DEPRECATION]
GetSetMethodNormalizer::setCamelizedAttributes()
andPropertyNormalizer::setCamelizedAttributes()
are replaced byCamelCaseToSnakeCaseNameConverter
- [DEPRECATION] the
Exception
interface has been renamed toExceptionInterface
- added
ObjectNormalizer
leveraging thePropertyAccess
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
. LikeGetSetMethodNormalizer
, 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 inGetSetMethodNormalizer
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 theXmlEncoder
. - Options to
json_encode
andjson_decode
can be passed through the context options ofJsonEncode
andJsonDecode
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
tomyPropertyValue
) -
[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 ) ) )