diff --git a/CHANGELOG.md b/CHANGELOG.md index 7d11efa..f7317c7 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -58,6 +58,7 @@ and this project adheres to [Semantic Versioning](http://semver.org/spec/v2.0.0. - automatic meta cache reset after main `process()` call (performance optimization) replaced with `reset()` method - properties are not set/unset via closure binding when public + - call `unset()` for mapped object properties only in `RequiredFields::none()` mode (performance optimization) ### Removed diff --git a/src/Processing/DefaultProcessor.php b/src/Processing/DefaultProcessor.php index b88f5dd..4fc72a2 100644 --- a/src/Processing/DefaultProcessor.php +++ b/src/Processing/DefaultProcessor.php @@ -552,10 +552,13 @@ private function fillObject( $this->rawValuesMap->setRawValues($object, $rawData); } - // Reset mapped properties state $fieldsMeta = $meta->getFields(); - foreach ($fieldsMeta as $fieldMeta) { - $this->objectUnset($object, $fieldMeta->getProperty()); + + if ($dynamic->getOptions()->getRequiredFields() === RequiredFields::none()) { + // Reset mapped properties state + foreach ($fieldsMeta as $fieldMeta) { + $this->objectUnset($object, $fieldMeta->getProperty()); + } } // Set processed data