Download the PHP package onmoon/dto-mapper without Composer
On this page you can find all versions of the php package onmoon/dto-mapper. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.
Download onmoon/dto-mapper
More information about onmoon/dto-mapper
Files in onmoon/dto-mapper
Package dto-mapper
Short Description Class to map any array or class tree into DTO
License MIT
Informations about the package dto-mapper
DTO Mapper
About
This class helps to map any class or associative array tree into DTO class tree.
It uses reflection to create DTOs but calls getters or reads properties to get values from source tree and only properties found in DTO will be fetched from source object. This makes mapper work fine e.g. with doctrine lazy loads.
For object object
if key property property
is required, following sources will be
checked:
object->propery
object[property]
object->getPropery()
object->isPropery()
object->hasPropery()
object->propery()
object->__call('property')
All method calls are case-insensitive.
DTOs must have all their properties typed and all array properties should have phpDoc specifying item types.
Installation
The preferred way to install this extension is through composer.
Run
Usage
DateTime handling
DateTime
class does not support creation with reflection. If DTO property is
subclass of DateTimeInterface
then this property is set to new \Safe\DateTime
instance. Source values for DateTime
can be both DateTimeInterface
and string
.
Rewriting source properties
By default, mapper searches for the same property in source as in DTO. If you want to read value for some property from another source property, you can pass a callable object as third argument. This callable should always return mapped property name.
All versions of dto-mapper with dependencies
thecodingmachine/safe Version ^1.1
symfony/property-info Version ^5.0|^6.0
phpdocumentor/reflection-docblock Version ^5.0