Upgrading jms/serializer 0.16 to 1
Breaking0.16.0 → 1.14.1Breaking3Deprecated1New51Changed21Fixed88Other31
BreakingUpgrade verdict
3 breaking changes.
In plain terms
- Renames replaceData to setData.
- Removes the deprecated FileCacheReader for doctrine annotations.
- This release undoes a previous change to directory handling, because that change broke other libraries that depend on this package.
- Adds deprecations.
Must act 4 items need code or config changes
PHP requirement changed in 1.11.0: >=5.3.2 → ^5.5|^7.0.
Adds doctrine/instantiator ^1.0.3, phpoption/phpoption ^1.1.
Moves doctrine/annotations 1.* → ^1.0, jms/metadata ~1.1 → ^1.3. Your build may pick other versions.
What you must change
Breaking3
Renames replaceData to setData.
replaceDatasetDataRemoves the deprecated FileCacheReader for doctrine annotations.
FileCacheReaderReverts the directory changes because they caused a backward compatibility break in some dependent libraries.
Deprecations to plan for
Deprecated1
Adds deprecations.
API changes
Generated by DepDelta from published PHP source. Not mixed with prose notes.
- removed:
const GraphNavigator.DIRECTION_DESERIALIZATION - removed:
const GraphNavigator.DIRECTION_SERIALIZATION - changed:
class Serializer implements SerializerInterface → class Serializer implements SerializerInterface, ArrayTransformerInterface - changed:
class XmlDeserializationVisitor extends AbstractVisitor → class XmlDeserializationVisitor extends AbstractVisitor implements NullAwareVisitorInterface - changed:
constructor AbstractVisitor(PropertyNamingStrategyInterface $namingStrategy) → constructor AbstractVisitor($namingStrategy, AccessorStrategyInterface $accessorStrategy = …) - changed:
constructor GraphNavigator(MetadataFactoryInterface $metadataFactory, HandlerRegistryInterface $handlerRegistry, ObjectConstructorInterface $objectConstructor, EventDispatcherInterface $dispatcher = …) → constructor GraphNavigator(MetadataFactoryInterface $metadataFactory, HandlerRegistryInterface $handlerRegistry, ObjectConstructorInterface $objectConstructor, EventDispatcherInterface $dispatcher = …, ExpressionEvaluatorInterface $expressionEvaluator = …) - changed:
constructor Serializer(MetadataFactoryInterface $factory, HandlerRegistryInterface $handlerRegistry, ObjectConstructorInterface $objectConstructor, MapInterface $serializationVisitors, MapInterface $deserializationVisitors, EventDispatcherInterface $dispatcher = …, TypeParser $typeParser = …) → constructor Serializer(MetadataFactoryInterface $factory, HandlerRegistryInterface $handlerRegistry, ObjectConstructorInterface $objectConstructor, MapInterface $serializationVisitors, MapInterface $deserializationVisitors, EventDispatcherInterface $dispatcher = …, TypeParser $typeParser = …, ExpressionEvaluatorInterface $expressionEvaluator = …) - changed:
constructor YamlSerializationVisitor(PropertyNamingStrategyInterface $namingStrategy) → constructor YamlSerializationVisitor($namingStrategy, AccessorStrategyInterface $accessorStrategy = …) - changed:
final class GraphNavigator → final class GraphNavigator implements GraphNavigatorInterface - added:
const GraphNavigatorInterface.DIRECTION_DESERIALIZATION - added:
const GraphNavigatorInterface.DIRECTION_SERIALIZATION - added:
constructor XmlSerializationVisitor($namingStrategy, AccessorStrategyInterface $accessorStrategy = …) - added:
interface ArrayTransformerInterface - added:
interface GraphNavigatorInterface - added:
interface NullAwareVisitorInterface extends VisitorInterface - added:
method ArrayTransformerInterface.fromArray(array $data, $type, DeserializationContext $context = …) - added:
method ArrayTransformerInterface.toArray($data, SerializationContext $context = …) - added:
method Context.getAttribute($key) - added:
method Context.getCurrentPath() - added:
method Context.hasAttribute($key) - added:
method GenericSerializationVisitor.hasData($key) - added:
method GenericSerializationVisitor.setData($key, $value) - added:
method GraphNavigatorInterface.accept($data, array $type = …, Context $context) - added:
method JsonSerializationVisitor.addData($key, $value) - added:
method JsonSerializationVisitor.getNavigator() - added:
method JsonSerializationVisitor.getRoot() - added:
method JsonSerializationVisitor.hasData($key) - added:
method JsonSerializationVisitor.setData($key, $value) - added:
method JsonSerializationVisitor.setNavigator(GraphNavigator $navigator) - added:
method JsonSerializationVisitor.setRoot($data) - added:
method JsonSerializationVisitor.startVisitingObject(ClassMetadata $metadata, $data, array $type, Context $context) - added:
method JsonSerializationVisitor.visitBoolean($data, array $type, Context $context) - added:
method JsonSerializationVisitor.visitDouble($data, array $type, Context $context) - added:
method JsonSerializationVisitor.visitInteger($data, array $type, Context $context) - added:
method JsonSerializationVisitor.visitNull($data, array $type, Context $context) - added:
method JsonSerializationVisitor.visitProperty(PropertyMetadata $metadata, $data, Context $context) - added:
method JsonSerializationVisitor.visitString($data, array $type, Context $context) - added:
method NullAwareVisitorInterface.isNull($value) - added:
method SerializationContext.getInitialType() - added:
method SerializationContext.setInitialType($type) - added:
method Serializer.fromArray(array $data, $type, DeserializationContext $context = …) - added:
method Serializer.setDeserializationContextFactory(DeserializationContextFactoryInterface $deserializationContextFactory) - added:
method Serializer.setSerializationContextFactory(SerializationContextFactoryInterface $serializationContextFactory) - added:
method Serializer.toArray($data, SerializationContext $context = …) - added:
method SerializerBuilder.setAccessorStrategy(AccessorStrategyInterface $accessorStrategy) - added:
method SerializerBuilder.setAdvancedNamingStrategy(AdvancedNamingStrategyInterface $advancedNamingStrategy) - added:
method SerializerBuilder.setDeserializationContextFactory($deserializationContextFactory) - added:
method SerializerBuilder.setExpressionEvaluator(ExpressionEvaluatorInterface $expressionEvaluator) - added:
method SerializerBuilder.setMetadataCache(CacheInterface $cache) - added:
method SerializerBuilder.setSerializationContextFactory($serializationContextFactory) - added:
method XmlDeserializationVisitor.isNull($value) - added:
method XmlSerializationVisitor.isFormatOutput() - added:
method XmlSerializationVisitor.setFormatOutput($formatOutput) - added:
protected method SerializerBuilder.getAccessorStrategy() - added:
protected property AbstractVisitor.accessor
- added:
class DefaultAccessorStrategy implements AccessorStrategyInterface - added:
class ExpressionAccessorStrategy implements AccessorStrategyInterface - added:
constructor ExpressionAccessorStrategy(ExpressionEvaluatorInterface $evaluator, AccessorStrategyInterface $fallback) - added:
interface AccessorStrategyInterface - added:
method AccessorStrategyInterface.getValue($object, PropertyMetadata $metadata) - added:
method AccessorStrategyInterface.setValue($object, $value, PropertyMetadata $metadata) - added:
method DefaultAccessorStrategy.getValue($object, PropertyMetadata $metadata) - added:
method DefaultAccessorStrategy.setValue($object, $value, PropertyMetadata $metadata) - added:
method ExpressionAccessorStrategy.getValue($object, PropertyMetadata $metadata) - added:
method ExpressionAccessorStrategy.setValue($object, $value, PropertyMetadata $metadata)
- added:
class XmlDiscriminator - added:
constructor VirtualProperty(array $data) - added:
final class SkipWhenEmpty - added:
property Discriminator.groups - added:
property Exclude.if - added:
property Expose.if - added:
property VirtualProperty.exp - added:
property VirtualProperty.name - added:
property VirtualProperty.options - added:
property XmlCollection.namespace - added:
property XmlCollection.skipWhenEmpty - added:
property XmlDiscriminator.attribute - added:
property XmlDiscriminator.cdata - added:
property XmlDiscriminator.namespace
- changed:
constructor DoctrineObjectConstructor(ManagerRegistry $managerRegistry, ObjectConstructorInterface $fallbackConstructor) → constructor DoctrineObjectConstructor(ManagerRegistry $managerRegistry, ObjectConstructorInterface $fallbackConstructor, $fallbackStrategy = …) - added:
const DoctrineObjectConstructor.ON_MISSING_EXCEPTION - added:
const DoctrineObjectConstructor.ON_MISSING_FALLBACK - added:
const DoctrineObjectConstructor.ON_MISSING_NULL
- added:
abstract class CallableContextFactory - added:
class CallableDeserializationContextFactory extends CallableContextFactory implements DeserializationContextFactoryInterface - added:
class CallableSerializationContextFactory extends CallableContextFactory implements SerializationContextFactoryInterface - added:
class DefaultDeserializationContextFactory implements DeserializationContextFactoryInterface - added:
class DefaultSerializationContextFactory implements SerializationContextFactoryInterface - added:
constructor CallableContextFactory(callable $callable) - added:
interface DeserializationContextFactoryInterface - added:
interface SerializationContextFactoryInterface - added:
method CallableDeserializationContextFactory.createDeserializationContext() - added:
method CallableSerializationContextFactory.createSerializationContext() - added:
method DefaultDeserializationContextFactory.createDeserializationContext() - added:
method DefaultSerializationContextFactory.createSerializationContext() - added:
method DeserializationContextFactoryInterface.createDeserializationContext() - added:
method SerializationContextFactoryInterface.createSerializationContext() - added:
protected method CallableContextFactory.createContext()
- changed:
constructor LazyEventDispatcher(ContainerInterface $container) → constructor LazyEventDispatcher($container) - added:
method Event.isPropagationStopped() - added:
method Event.stopPropagation()
- added:
class SymfonyValidatorValidatorSubscriber implements EventSubscriberInterface - added:
constructor DoctrineProxySubscriber($skipVirtualTypeInit = …, $initializeExcluded = …) - added:
constructor SymfonyValidatorValidatorSubscriber(ValidatorInterface $validator) - added:
method DoctrineProxySubscriber.onPreSerializeTypedProxy(PreSerializeEvent $event, $eventName, $class, $format, EventDispatcherInterface $dispatcher) - added:
method SymfonyValidatorValidatorSubscriber.onPostDeserialize(Event $event) - added:
static method SymfonyValidatorValidatorSubscriber.getSubscribedEvents()
- changed:
constructor ValidationFailedException(ConstraintViolationList $list) → constructor ValidationFailedException(ConstraintViolationListInterface $list) - added:
class ExpressionLanguageRequiredException extends LogicException - added:
class ObjectConstructionException extends RuntimeException implements Exception
- added:
class ExpressionLanguageExclusionStrategy - added:
constructor ExpressionLanguageExclusionStrategy(ExpressionEvaluatorInterface $expressionEvaluator) - added:
method ExpressionLanguageExclusionStrategy.shouldSkipProperty(PropertyMetadata $property, Context $navigatorContext) - added:
method GroupsExclusionStrategy.getGroupsFor(Context $navigatorContext)
- added:
class ExpressionEvaluator implements ExpressionEvaluatorInterface - added:
constructor ExpressionEvaluator(ExpressionLanguage $expressionLanguage, array $context = …, array $cache = …) - added:
interface ExpressionEvaluatorInterface - added:
method ExpressionEvaluator.evaluate($expression, array $data = …) - added:
method ExpressionEvaluator.setContextVariable($name, $value) - added:
method ExpressionEvaluatorInterface.evaluate($expression, array $data = …)
- changed:
constructor FormErrorHandler(TranslatorInterface $translator) → constructor FormErrorHandler(TranslatorInterface $translator = …, $translationDomain = …) - changed:
constructor LazyHandlerRegistry(ContainerInterface $container, array $handlers = …) → constructor LazyHandlerRegistry($container, array $handlers = …) - added:
class StdClassHandler implements SubscribingHandlerInterface - added:
constructor ArrayCollectionHandler($initializeExcluded = …) - added:
method DateHandler.deserializeDateIntervalFromJson(JsonDeserializationVisitor $visitor, $data, array $type) - added:
method DateHandler.deserializeDateIntervalFromXml(XmlDeserializationVisitor $visitor, $data, array $type) - added:
method DateHandler.deserializeDateTimeImmutableFromJson(JsonDeserializationVisitor $visitor, $data, array $type) - added:
method DateHandler.deserializeDateTimeImmutableFromXml(XmlDeserializationVisitor $visitor, $data, array $type) - added:
method DateHandler.serializeDateTimeImmutable(VisitorInterface $visitor, \DateTimeImmutable $date, array $type, Context $context) - added:
method StdClassHandler.serializeStdClass(VisitorInterface $visitor, \stdClass $stdClass, array $type, Context $context) - added:
static method StdClassHandler.getSubscribingMethods()
- removed:
method VirtualPropertyMetadata.serialize() - changed:
constructor StaticPropertyMetadata($className, $fieldName, $fieldValue) → constructor StaticPropertyMetadata($className, $fieldName, $fieldValue, array $groups = …) - changed:
method ClassMetadata.setDiscriminator($fieldName, array $map) → method ClassMetadata.setDiscriminator($fieldName, array $map, array $groups = …) - added:
class ExpressionPropertyMetadata extends PropertyMetadata - added:
constructor ExpressionPropertyMetadata($class, $fieldName, $expression) - added:
constructor PropertyMetadata($class, $name) - added:
method ExpressionPropertyMetadata.getValue($object) - added:
method ExpressionPropertyMetadata.serialize() - added:
method ExpressionPropertyMetadata.setAccessor($type, $getter = …, $setter = …) - added:
method ExpressionPropertyMetadata.setValue($obj, $value) - added:
method ExpressionPropertyMetadata.unserialize($str) - added:
method PropertyMetadata.setValue($obj, $value) - added:
property ClassMetadata.discriminatorGroups - added:
property ClassMetadata.usingExpression - added:
property ClassMetadata.xmlDiscriminatorAttribute - added:
property ClassMetadata.xmlDiscriminatorCData - added:
property ClassMetadata.xmlDiscriminatorNamespace - added:
property ExpressionPropertyMetadata.expression - added:
property PropertyMetadata.excludeIf - added:
property PropertyMetadata.skipWhenEmpty - added:
property PropertyMetadata.xmlCollectionSkipWhenEmpty - added:
property PropertyMetadata.xmlEntryNamespace - added:
protected method ExpressionPropertyMetadata.unserializeProperties($str) - added:
protected method PropertyMetadata.unserializeProperties($str) - added:
protected method StaticPropertyMetadata.unserializeProperties($str)
- added:
class NullDriver implements DriverInterface - added:
method NullDriver.loadMetadataForClass(\ReflectionClass $class)
- added:
interface AdvancedNamingStrategyInterface - added:
method AdvancedNamingStrategyInterface.getPropertyName(PropertyMetadata $property, Context $context)
- removed:
method SerializerExtension.createContext() - added:
constructor SerializerRuntimeHelper(SerializerInterface $serializer) - added:
final class SerializerRuntimeExtension extends \Twig_Extension - added:
final class SerializerRuntimeHelper - added:
method SerializerRuntimeExtension.getFilters() - added:
method SerializerRuntimeExtension.getFunctions() - added:
method SerializerRuntimeExtension.getName() - added:
method SerializerRuntimeHelper.serialize($object, $type = …, SerializationContext $context = …) - added:
protected property SerializerRuntimeHelper.serializer