jolicode / automapper

:rocket: Very FAST :rocket: PHP AutoMapper with on the fly code generation
https://automapper.jolicode.com/
MIT License
154 stars 15 forks source link

Lazy mapping #106

Open joelwurtz opened 7 months ago

joelwurtz commented 7 months ago

This introduce the possibility to do lazy mapping

The following call :

$userDto = $this->autoMapper->map($user, Fixtures\UserDTO::class, [MapperContext::LAZY_MAPPING => true]);

Will produce a lazy ghost object for userDto which will only be mapped when calling one of its value Nested objects are also lazy loaded

This will allow to map large complex tree instantly and only map values when it's needed, this may decreses performance in most cases so it's not enabled by default, but in some cases where only a part of a data is needed this may be useful and save process / memory

This also opens the door to json streaming (will need a special LazyArray object but it's totally doable)