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 );Если свойство не является скалярным типом, и у него явно указан класс, оно будет автоматически рекурсивно к нему приведено.
class ProductDTO{ public int $id; public string $name;}
class PurchaseDTO{ public ProductDTO $product; public float $cost;}
$data = [ 'product' => ['id' => 1, 'name' => 'phone'], 'cost' => 10012.23,];
$purchaseDTO = ClassTransformer::transform(PurchaseDTO::class, $data);var_dump($purchaseDTO);Результат:
object(PurchaseDTO) public ProductDTO 'product' => object(ProductDTO) public int 'id' => int 1 public string 'name' => string 'phone' (length=5) public float 'cost' => float 10012.23