v1.9.0
What's Changed
- feat: target properties with
Collection
&ReadableCollection
typehint will now be lazy-loaded by @priyadi in #131 - chore: rector run by @priyadi in #133
- refactor: refactor
ObjectToObjectMetadataFactory
for clarity by @priyadi in #134 - chore: refactor
PropertyMappingResolver
by @priyadi in #135 - chore: cleanup by @priyadi in #136
- feat: property path support in
Map
attributes by @priyadi in #137 - fix: writing using property path by @priyadi in #138
- fix: data collector output for property path by @priyadi in #139
- chore: naming, etc by @priyadi in #141
- test: property path negative test by @priyadi in #142
- fix: mapping from
stdClass
to object with mandatory constructor arguments by @priyadi in #143 - feat: variadic setter & constructor arguments support by @priyadi in #144
- feat: string to
UnitEnum
transformation by @priyadi in #145 - feat: datetime format & timezone conversion by @priyadi in #147
- refactor: genericize attribute handling by @priyadi in #148
- feat: attributes now affects the transformation of collection members by @priyadi in #149
- test: attribute with missing class by @priyadi in #150
- fix: multiple attributes found in inheritance chain now correctly handled by @priyadi in #151
- feat: save all attributes in metadata, not just our attributes by @priyadi in #152
- feat: datetime transformation to int & float by @priyadi in #154
- feat: class attributes are now stored in the metadata by @priyadi in #153
- chore: rector by @priyadi in #155
- feat: collect attributes if using property path mapping by @priyadi in #156
- fix: mapping to property without setter wasn't working by @priyadi in #157
- fix: mapping string with timezone to datetime should set the timezone on the target by @priyadi in #158
- perf: don't call the setter if the value doesn't change by @priyadi in #159
- feat:
Eager
attribute to disable proxying on target classes by @priyadi in #160 - perf: skip property if setting or mutating is impossible by @priyadi in #161
- chore: rector run by @priyadi in #162
- test: setting new instance to a target without setter by @priyadi in #163
- refactor: consolidate property & property path metadata into single interface by @priyadi in #164
- refactor: consolidate source & target metadata classes by @priyadi in #165
- refactor: add general class metadata by @priyadi in #166
- feat: support for immutable setters by @priyadi in #167
- test: immutable setter without setter on parent object error by @priyadi in #168
- test: immutable setter now works using 'wither' method by @priyadi in #169
- fix: readonly objects no longer assumed to be value objects by @priyadi in #170
- feat:
ValueObject
attribute to explicitly mark classes as value objects by @priyadi in #171 - feat: heuristics to detect value objects by @priyadi in #172
- test: integrate profiler with phpunit by @priyadi in #173
- feat: timing using Symfony stopwatch by @priyadi in #174
- test: test different setter return types by @priyadi in #175
- feat: support for immutable adder and remover by @priyadi in #176
- feat: optional second argument for getting the existing target value by @priyadi in #177
- refactor: separate dynamic properties determination to dedicated class by @priyadi in #178
- refactor: add an abstraction for property read/write info extractor by @priyadi in #179
- refactor: separate attributes extraction to dedicated class by @priyadi in #180
- refactor: encapsulate attributes in a class by @priyadi in #181
- refactor: separate value object determination to a dedicated class by @priyadi in #182
- fix: improve value object detection heuristics by @priyadi in #183
- chore: change hashing algorithm from sha256 to xxh128 by @priyadi in #184
- feat: remove
hasExistingTarget
tag attribute from object & property mapper service definition. by @priyadi in #185 - chore: rename term from 'value object' to 'unalterable' to reduce ambiguity by @priyadi in #186
- build: makefile & workflow schedule by @priyadi in #187
- fix: if array is list, don't match the targets using their keys by @priyadi in #188
- test: more unalterable tests by @priyadi in #189
Full Changelog: v1.8.0...v1.9.0