enrise/maparea

This package is abandoned and no longer maintained. No replacement package was suggested.
There is no license information available for the latest version (dev-master) of this package.

A data mapping library.

dev-master 2022-10-08 18:32 UTC

This package is not auto-updated.

Last update: 2022-10-10 07:04:25 UTC


README

This is an old repository that is no longer used or maintained. We advice to no longer use this repository.

Original README can be found below:

Maparea Travis build

This is a PHP mapping helper utility. It's useful when you want to convert a certain array-structure into another structure. The definitions could be declared in a yaml-structure, so it's easy to verify the input and of the mapping.

Definition

The definition is easiest done by using yaml. This project is using JMESpath, so you can define the mapping like this:

# route.yml
id:
  from: uuid
distance:
  from: plan.distance
  service_class: \Enrise\DistanceMapper
# map using route.yml
$mapper = new \Enrise\Maparea\Mapper();

$raw = [
    'uuid' => 'F2001E99-98E6-4C50-A965-C694EC44B810',
    'plan' => [
        'distance' => 1223
    ]
];

$mapper = Mapper::withLoader(new YamlLoader(__DIR__."/resources/yaml"));
$mappedData = $mapper->mapDataWithLoader($raw, "route.yaml");

// $mappedData
[
    'id' => 'F2001E99-98E6-4C50-A965-C694EC44B810',
    'distance' => 1.223
]