All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
9.2.0 - 2024-11-19
- GH#180 Add configuration to generate code with strict types
- GH#183 Ability to change reload strategy from AutoMapper::create()
- GH#193 add icon to symfony profiler
- GH#184 Fix error when mapping from stdClass to constructor with nullable/optional arguments
- GH#185 Fix constructor with default parameter array does not work with constructor_arguments context
- GH#187 Fix regression after GH#184
- GH#192 Fix source and context not passed to callable transformer
9.1.2 - 2024-09-03
- GH#174 Fix race condition when writing generated mappers
- GH#167 Fix property metadata attribute name in docs
- GH#166 Remove cache for property info, use specific services instead
9.1.1 - 2024-06-19
- GH#164 Fix type extract with @param in constructor doc block
9.1.0 - 2024-06-06
- GH#153 Handle DateTime format in MapTo/MapFrom/Mapper attributes
- GH#158 Actually read reload_strategy from bundle configuration
- GH#137 Always allow to write private props in constructor
- GH#129 Use map_private_properties when configuring ReflectionExtractor
9.0.2 - 2024-05-23
- GH#136 Deprecate the ability to inject AST transformer factories withing stand-alone AutoMapper
- GH#131 Require mandatory packages
- GH#132 Use DI Extension class instead of deprecated HttpKernel Extension
- GH#130 Make ClassDiscriminatorResolver optional
- GH#135 Fix return type of AutoMapper::create()
- GH#139 Fix unreachable variable in BuitinTransformer
- GH#138 Declare CopyTransformerFactory as a service
- GH#142 Make MapperMetadata non-internal because it is used within PropertyTransformerSupportInterface interface
- GH#148 Handle deprecated class LNumber in nikic/php-parser v5
- GH#151 Fix type in generated code
9.0.1 - 2024-05-10
9.0.0 - 2024-05-06
- GH#114 Introducing Mapper Attribute
- GH#117 Allow multiple source/target, allow overriding attribute with priority system
- GH#119 Change serializer configuration naming in Symfony Bundle
- GH#109 Use AutoMapper exceptions
- GH#115 Fix generating discriminator dependencies
- GH#116 Fix property transformer with adder and remover methods
9.0.0-beta.2 - 2024-04-02
- GH#104 Replace allow_constructor with constructor_strategy to have more control on how to use the constructor
- GH#102 Change default reload behavior for the symfony bundle
- GH#101 Fix some inconsistencies with symfony/serializer behavior
9.0.0-beta.1 - 2024-03-25
- GH#61 Add event system during code generation, make serializer optional thanks to it
- GH#63 Merge bundle directly into automapper, will replace automapper-bundle
- GH#59 Add MapTo & MapFrom attributes
- GH#78 Add MapTo & MapFrom listeners to bundle
- GH#80 Add if feature to MapTo / MapFrom attributes
- GH#81 Allow MapTo / MapFrom attributes in class when declaring a transformer and a name
- GH#82 Add groups to MapTo / MapFrom attributes
- GH#84 Allow expression language for transformer and add provider for custom functions
- GH#86 Bundle: Allow to use eval loader instead of file
- GH#89 Add normalizer format in context, allow skipping group checking and remove registry interface from normalizer
- GH#96 Add a way to instantiate the target object from external service using provider
- GH#98 Allow normalizer to only work with registered mapping
- GH#56 Refactor metadata
- GH#68 Allow to use sf 5.4 for most things, remove useless deps / suggests
- GH#71 Use interface for class metadata factory
- GH#75 Types: better matching between types to better handle multiple types
- GH#79 Refactor the way to create custom transformer
- GH#90 Allow to run symfony app in tests
- GH#70 Split map to / map from, fix from array
- GH#73 Don't map unexisting context, fix target to populate
- GH#72 Don't map property if groups specified and no groups attached
- GH#74 Check class exists when checking reflection class in object transformer factory
- GH#77 Try to get types from read accessor / write mutator first
- GH#83 Fix MapFrom: correctly use method from target if asked
- GH#85 Fix mapping with proxies
- GH#85 Fix \Traversable normalization
- GH#85 Fix array fetching on string indexed array
- GH#87 Correctly map from an inherited class
- GH#93 Fix map to overriding ignore / groups attribute from serializer
- GH#94 Fix most phpstan issues
- GH#91 Add documentation versioning
- GH#88 Reorganize documentation structure
- GH#92 Add doc about mapping
- GH#98 Add migration guide into documentation
8.2.2 - 2024-03-19
- GH#54 Introduce
MapperContext::DATETIME_FORCE_TIMEZONE
- GH#64 Use poetry to run and build documentation
8.2.1 - 2024-03-11
- GH#52 Don't tell we support internal php classes
8.2.0 - 2024-03-11
- GH#25 Pass full input object to property custom transformers
- GH#10 Introduce custom transformers
- GH#26 Fix mappings involving DateTimeInterface type
- GH#37 Adds useful phpDoc annotation in generated mappers
- GH#27 Use PhpStanExtractor instead of PhpDocExtractor
- GH#35 Refactoring Mapper Generator
- GH#47 Use directly the custom transformer instead of extracting it as a callback
- GH#48 Change the way transformer factory are injected to make it work as soon as automapper is created
- GH#33 Allow usage of imported class names in custom transformers
- GH#45 Fix composer.lock for phpstan and php-cs-fixer tooling
- GH#44 Allow skipping uninitialized property when skipping null values
8.1.0 - 2023-12-14
- GH#22 Added generic AST extractor
- GH#21 Add VERSION constants within AutoMapper class and use it for transformers hashes
8.0.2 - 2023-11-06
- GH#11 Added phpstan level 5 in CI
- GH#9 fix:
mapPrivatePropertiesAndMethod
should not be mandatory - GH#15 fix: check class existence in SymfonyUidTransformerFactory
8.0.1 - 2023-10-04
- GH#6 Document all AST code by explaining what it generates
- GH#7 Fix NullableTransformer should check if array key exists
- Modernization, PHP 8.2 and typed properties everywhere
- GH#1 Better private properties handling
- GH#753 Fix: AutoMapper should accept getters with default properties
- GH#742 Always require registry during cache warmup
- GH#741
#[MapToContext]
should accept virtual properties
- [AutoMapper] GH#733 Configure date format with context
- [AutoMapper] GH#731 Introduce new attribute
MapToContext
- [AutoMapper] GH#734 Cache warmer should generate mappers for nested classes
- [AutoMapper] GH#729 Allow to add full objects in
allowed_attribute
context
- [AutoMapper] GH#720 Add mixed return type to generated mappers
- [AutoMapper] GH#721 Create mappers on Symfony cache warmup
- [AutoMapper] GH#710 Add Enum support in AutoMapper bundle
- [AutoMapper] GH#711 Allow nesting properties with
MapperContext::isAllowedAttribute()
- [AutoMapper] GH#713 Use serializer's "ignore" attribute
- [AutoMapper] GH#714 Allow custom context in AutomapperNormalizer
- [AutoMapper] GH#716 Add readonly properties support
- [AutoMapper] GH#718 Disallow readonly target when using object to populate
- [AutoMapper] GH#707 Add Enum support
- [AutoMapper] GH#624 AutoMapper directory creation should be out of registry functions
- [AutoMapper] GH#623 We don't need registry when not hot reloading
- [AutoMapper] GH#606 Lock file when writing in AutoMapper registry
- [AutoMapper] GH#594 Issue when no targetTypes in BuiltinTransformer
- [AutoMapper] GH#589 Fix setting properties when using target to populate object
- [AutoMapper] GH#567 Fixed MapperContext::withNewContext target_to_populate value
- [AutoMapper] GH#564 Remove deprecations
- [AutoMapper] GH#567 Fix the value of
target_to_populate
onMapperContext::withNewContext
call
- [AutoMapper] GH#560 Fix fail on generic object without explicit classname
- [AutoMapper] GH#553 Fix generated Mappers with adder calls
- [AutoMapper] GH#546 Add stdClass to stdClass transformation support
- [AutoMapper] GH#536 Update benchmark scripts
- [AutoMapper] GH#462 Move bundle out of the component
- [AutoMapper] GH#433 Handle dictionaries with ArrayTransformer
- [AutoMapper] GH#432 Ignore API Platform resources when using AutoMapper normalizer
- [AutoMapper] GH#495 Add Symfony Uid transformers #495
- [AutoMapper] GH#507 Add
skip_null_values
feature
- [AutoMapper] GH#458 Add PrioritizedTransformerFactoryInterface and implementation
- [AutoMapper] GH#459 Add DependentTransformerInterface and implementation
- [AutoMapper] GH#460 Add AssignedByReferenceTransformerInterface and implementation
- [AutoMapper] GH#461 Transformer arguments typo
- [AutoMapper] GH#487 Can not call getName when type is adders/removers
- [AutoMapper] GH#498 Improve FileLoader: do not use registry at all when hot reload is disabled.
- [AutoMapper] GH#498 When using bundle: automatically disable hot reload when not in debug mode.
- [AutoMapper] GH#465 Allow dateTimeFormat customisation when initialising
- [AutoMapper] GH#443 Add configuration to use custom NameConverter
- [AutoMapper] GH#446 Add autoconfigure on TransformerFactoryInterface
- [AutoMapper] GH#453 Introducing autoregistering of custom Mapper configuration
- [AutoMapper] GH#431 Add a second parameter to
forMember
with target object - [AutoMapper] GH#452 Improve
ClassLoaderInterface
service definition
- [AutoMapper] GH#426 Fix mapping for empty collection value on an array property
- [AutoMapper] GH#397 Update AutoMapper to be able to bind custom TransformerFactory
- [AutoMapper] GH#403 Allow ^5.0 for phpdocumentor/reflection-docblock
- [AutoMapper] GH#396 Typo in DateTime transformer
- [AutoMapper] GH#306 AutoMapper update
- [AutoMapper] GH#354 Do not try to create an instance of an interface
- [AutoMapper] GH#353 Allow date_time_format override from bundle
- [AutoMapper] GH#372 Use copy transformer for sibling arrays
- [AutoMapper] GH#214 Added a quick documentation about the AutoMapper
- [AutoMapper] GH#179 Fixing incompatible changes in Symfony 5.0