transformMultiple()   B
last analyzed

Complexity

Conditions 6
Paths 7

Size

Total Lines 33
Code Lines 20

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 6
eloc 20
c 1
b 0
f 0
nc 7
nop 1
dl 0
loc 33
rs 8.9777
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Locastic\SymfonyTranslationBundle\Transformer;
6
7
use Locastic\SymfonyTranslationBundle\Model\Translation;
8
use Locastic\SymfonyTranslationBundle\Model\TranslationValue;
9
10
final class TranslationKeyToTranslationTransformer implements TranslationKeyToTranslationTransformerInterface
11
{
12
    public function transformMultiple(array $translationKeys): array
13
    {
14
        $translationsList = [];
15
        $translations = [];
16
        foreach ($translationKeys as $themeName => $themeData) {
17
            foreach ($themeData as $domainName => $domainData) {
18
                foreach ($domainData as $key => $values) {
19
                    $translationKey = $domainName . '.' . $key;
20
                    if (!\array_key_exists($translationKey, $translationsList)) {
21
                        $translation = new Translation();
22
                        $translation->setDomainName($domainName);
23
                        $translation->setKey($key);
24
25
                        $translationsList[$translationKey] = $translation;
26
27
                        $translations[] = $translation;
28
                    }
29
30
                    $translation = $translationsList[$translationKey];
31
32
                    foreach ($values as $localeCode => $value) {
33
                        $translationValue = new TranslationValue();
34
                        $translationValue->setLocaleCode($localeCode);
35
                        $translationValue->setTheme($themeName);
36
                        $translationValue->setValue('' . $value);
37
38
                        $translation->addValue($translationValue);
39
                    }
40
                }
41
            }
42
        }
43
44
        return $translations;
45
    }
46
}
47