[]
(https://github.com/ThrusterIO/data-mapper/releases)
[
]
(LICENSE)
[
]
(https://travis-ci.org/ThrusterIO/data-mapper)
[
]
(https://scrutinizer-ci.com/g/ThrusterIO/data-mapper)
[
]
(https://scrutinizer-ci.com/g/ThrusterIO/data-mapper)
[
]
(https://packagist.org/packages/thruster/data-mapper)
The Thruster DataMapper Component. Provides fast and efficient way to map data from one format to another.
Via Composer
$ composer require thruster/data-mapperFor older PHP version than PHP7 there is branch php5
$ composer require thruster/data-mapper ">=1.0,<2.0"class SimpleMapper extends BaseDataMapper {
/** * @param Request $input */publicfunctionmap($input)
{
return [
'id' => $input->getId(),
'name' => $input->getName()
];
}
}
$dataMappers = newDataMappers();
$dataMappers->addMapper(newSimpleMapper());
$dataMappers->getMapper(SimpleMapper::class)->map($input);class ItemMapper extends BaseDataMapper {
/** * @param Request $input */publicfunctionmap($input)
{
return [
'id' => $input->getId(),
'name' => $input->getName()
];
}
}
class MainMapper extends BaseDataMapper {
/** * @param Request $input */publicfunctionmap($input)
{
return [
'id' => $input->getId(),
'name' => $input->getName(),
'items' => $this->getMapper(ItemMapper::class)->mapCollection($input->getItems())
];
}
}
$dataMappers = newDataMappers();
$dataMappers->addMapper(newMainMapper());
$dataMappers->addMapper(newItemMapper());
$dataMappers->getMapper(MainMapper::class)->map($input);class UserRegistrationMapper extends BaseDataMapper implements ValidateableDataMapperInterface {
/** * @param Request $input */publicfunctionmap($input)
{
$user = newUser();
$user->setUsername($input->get('username'));
$user->setPassword($input->get('password'));
}
publicfunctionsupports($input) : bool
{
return ($inputinstanceof Request);
}
publicfunctiongetValidationGroups($input) : array
{
return ['full'];
}
}
$dataMappers = newDataMappers();
$dataMappers->setValidator(Validation::createValidator());
$dataMappers->addMapper(newUserRegistrationMapper());
$dataMappers->getMapper(UserRegistrationMapper::class)->map($input);$simpleMapper = newDataMapper(
newclassextends BaseDataMapper {
/** * @param Request $input */publicfunctionmap($input)
{
return [
'id' => $input->getId(),
'name' => $input->getName()
];
}
publicfunctionsupports($input) : bool
{
returntrue;
}
}
);
$simpleMapper->map($input);$ composer testPlease see CONTRIBUTING and CONDUCT for details.
Please see License File for more information.