Helper::buildMessages()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 18

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 18
rs 9.6666
c 0
b 0
f 0
cc 2
nc 2
nop 2
1
<?php
2
declare(strict_types=1);
3
4
namespace Yproximite\Api\Util;
5
6
use Symfony\Component\PropertyAccess\PropertyAccess;
7
8
use Yproximite\Api\Message\MessageInterface;
9
10
/**
11
 * Class Helper
12
 */
13
final class Helper
14
{
15
    /**
16
     * @param MessageInterface[] $messages
17
     * @param string|null        $keyBy
18
     *
19
     * @return array
20
     */
21
    public static function buildMessages(array $messages, string $keyBy = null): array
22
    {
23
        $values = array_map(function (MessageInterface $message) {
24
            return $message->build();
25
        }, $messages);
26
27
        if (!is_null($keyBy)) {
28
            $accessor = PropertyAccess::createPropertyAccessor();
29
30
            $keys = array_map(function (MessageInterface $message) use ($accessor, $keyBy) {
31
                return $accessor->getValue($message, $keyBy);
32
            }, $messages);
33
34
            $values = array_combine($keys, $values);
35
        }
36
37
        return $values;
38
    }
39
}
40