AbstractTranslationMigration::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 1
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 3
rs 10
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Locastic\SymfonyTranslationBundle\TranslationMigration;
6
7
use Locastic\SymfonyTranslationBundle\Model\Translation;
8
use Locastic\SymfonyTranslationBundle\Model\TranslationValue;
9
use ReflectionClass;
10
11
use function str_replace;
12
13
abstract class AbstractTranslationMigration
14
{
15
    protected ExecutorInterface $migrationExecutor;
16
17
    public function __construct(ExecutorInterface $migrationExecutor)
18
    {
19
        $this->migrationExecutor = $migrationExecutor;
20
    }
21
22
    abstract public function up(): void;
23
24
    public function addTranslation(
25
        string $key,
26
        string $domain,
27
        string $localeCode,
28
        string $value,
29
        string $theme
30
    ): void {
31
        $translation = new Translation();
32
        $translation->setDomainName($domain);
33
        $translation->setKey($key);
34
35
        $translationValue = new TranslationValue();
36
        $translationValue->setLocaleCode($localeCode);
37
        $translationValue->setValue($value);
38
        $translationValue->setTheme($theme);
39
40
        $translation->addValue($translationValue);
41
42
        $this->migrationExecutor->addTranslation($translation);
43
    }
44
45
    public function getVersionNumber(): string
46
    {
47
        $reflectionClass = new ReflectionClass(get_class($this));
48
49
        return str_replace('Version', '', $reflectionClass->getShortName());
50
    }
51
}
52