transform()   A
last analyzed

Complexity

Conditions 2
Paths 2

Size

Total Lines 13
Code Lines 9

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 2
eloc 9
c 1
b 0
f 0
nc 2
nop 1
dl 0
loc 13
rs 9.9666
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
use Locastic\SymfonyTranslationBundle\Model\TranslationValueInterface;
10
11
use function sprintf;
12
13
final class TranslationValueToFormFieldTransformer implements TranslationValueToFormFieldTransformerInterface
14
{
15
    public function transform(TranslationValueInterface $translationValue): string
16
    {
17
        $translation = $translationValue->getTranslation();
18
        if (null === $translation) {
19
            return '';
20
        }
21
22
        return sprintf(
23
            '[%s][%s][%s][%s]',
24
            $translationValue->getTheme(),
25
            $translation->getDomainName(),
26
            $translation->getKey(),
27
            $translationValue->getLocaleCode()
28
        );
29
    }
30
31
    public function reverseTransform(array $submittedField): ?TranslationValueInterface
32
    {
33
        foreach ($submittedField as $theme => $themeInfo) {
34
            foreach ($themeInfo as $domain => $domainInfo) {
35
                foreach ($domainInfo as $key => $keyInfo) {
36
                    foreach ($keyInfo as $locale => $value) {
37
                        $translation = new Translation();
38
                        $translation->setDomainName($domain);
39
                        $translation->setKey($key);
40
41
                        $translationValue = new TranslationValue();
42
                        $translationValue->setTheme($theme);
43
                        $translationValue->setLocaleCode($locale);
44
                        $translationValue->setValue($value);
45
46
                        $translation->addValue($translationValue);
47
48
                        return $translationValue;
49
                    }
50
                }
51
            }
52
        }
53
54
        return null;
55
    }
56
}
57