Basic usage

Common use case:

namespace DTO;
class CreateUserDTO
{
public string $email;
public float $balance;
}
$data = [
'email' => 'test@mail.com',
'balance' => 128.41,
];
$dto = ClassTransformer::transform(CreateUserDTO::class, $data);
var_dump($dto);

Result:

object(\LoginDTO)
'email' => string(13) "test@mail.com"
'balance' => float(128.41)

Also for php 8 you can pass named arguments:

$dto = ClassTransformer::transform(CreateUserDTO::class,
email: 'test@mail.com',
balance: 128.41
);

If the property is not of a scalar type, but a class of another DTO is allowed, it will also be automatically converted.