Completed
Pull Request — master (#20)
by
unknown
01:42
created

MapFieldsTransformer   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 2
dl 0
loc 24
rs 10
c 0
b 0
f 0

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 4 1
A transform() 0 14 3
1
<?php
2
3
namespace Extraload\Transformer;
4
5
use Symfony\Component\PropertyAccess\PropertyAccess;
6
7
class MapFieldsTransformer implements TransformerInterface
8
{
9
    private $fields;
10
11
    public function __construct(array $fields)
12
    {
13
        $this->fields = $fields;
14
    }
15
16
    public function transform($data)
17
    {
18
        $result = [];
19
20
        $propertyAccessor = PropertyAccess::createPropertyAccessor();
21
22
        foreach ($data as $key => $val) {
23
            if (array_key_exists($key, $this->fields)) {
24
                $propertyAccessor->setValue($result, "[{$this->fields[$key]}]", $val);
25
            }
26
        }
27
28
        return $result;
29
    }
30
}
31