boshurik/mapper

Mapper

0.2.2 2021-07-08 13:12 UTC

This package is auto-updated.

Last update: 2024-04-08 18:48:22 UTC


README

Library for mapping given object to another (e.g. to DTO and back)

Usage

$registry = new MappingRegistry();
$registry->add(User::class, UserDto::class, function(User $user, MapperInterface $mapper, array $context) {
    $dto = $context[Mapper::DESTINATION_CONTEXT] ?? new UserDto();
    $dto->name = $user->getName();

    return $dto;
});

$mapper = new Mapper($registry);

$user = new User('name');
$dto = $mapper->map($user, UserDto::class);

// Map to existing object. You can get it from $context[Mapper::DESTINATION_CONTEXT]
$dto = $mapper->map($user, new UserDto());