Open Source/plain-to-class/Использование/Базовое использование

Базовое использование

Общий вариант использования:

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);

Результат:

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

Также с версии php 8 вы можете передавать именованные аргументы:

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

Если свойство не является скалярным типом, а у него указан класс другого DTO, оно тоже будет автоматически преобразовано.