Completed
Push — master ( 328402...1cd18c )
by Julien
587:13 queued 584:54
created

BaseOrchestratorContext::isSingleEnvironment()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 3
Code Lines 1

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
cc 1
eloc 1
nc 1
nop 0
dl 0
loc 3
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace TheAentMachine\Aent\Context;
4
5
use TheAentMachine\Aenthill\Aenthill;
6
7
class BaseOrchestratorContext extends Context
8
{
9
    /** @var string */
10
    private $baseVirtualHost;
11
12
    /** @var bool */
13
    private $singleEnvironment;
14
15
    public const BUILDER_DEPENDENCY_KEY = 'BUILDER';
16
    public const CI_DEPENDENCY_KEY = 'CI';
17
18
    /**
19
     * BaseOrchestratorContext constructor.
20
     * @param string $environmentType
21
     * @param string $environmentName
22
     * @param string $baseVirtualHost
23
     */
24
    public function __construct(string $environmentType, string $environmentName, string $baseVirtualHost)
25
    {
26
        parent::__construct($environmentType, $environmentName);
27
        $this->baseVirtualHost = $baseVirtualHost;
28
        $this->singleEnvironment = true;
29
    }
30
31
    /**
32
     * @return array<string,mixed>
33
     */
34
    public function toArray(): array
35
    {
36
        $assoc = parent::toArray();
37
        $assoc['BASE_VIRTUAL_HOST'] = $this->baseVirtualHost;
38
        $assoc['IS_SINGLE_ENVIRONMENT'] = $this->singleEnvironment;
39
        return $assoc;
40
    }
41
42
    /**
43
     * @param array<string,mixed> $assoc
44
     * @return mixed
45
     */
46
    public static function fromArray(array $assoc)
47
    {
48
        $context = parent::fromArray($assoc);
49
        $baseVirtualHost = $assoc['BASE_VIRTUAL_HOST'];
50
        $singleEnvironment = (bool)$assoc['IS_SINGLE_ENVIRONMENT'];
51
        $self = new self($context->getEnvironmentType(), $context->getEnvironmentName(), $baseVirtualHost);
52
        $self->setSingleEnvironment($singleEnvironment);
53
        return $self;
54
    }
55
56
    /**
57
     * @return void
58
     */
59
    public function toMetadata(): void
60
    {
61
        Aenthill::update($this->toArray());
62
    }
63
64
    /**
65
     * @return mixed
66
     */
67
    public static function fromMetadata()
68
    {
69
        $context = parent::fromMetadata();
70
        $baseVirtualHost = Aenthill::metadata('BASE_VIRTUAL_HOST');
71
        $singleEnvironment = (bool)Aenthill::metadata('IS_SINGLE_ENVIRONMENT');
72
        $self = new self($context->getEnvironmentType(), $context->getEnvironmentName(), $baseVirtualHost);
73
        $self->setSingleEnvironment($singleEnvironment);
74
        return $self;
75
    }
76
77
    /**
78
     * @return string
79
     */
80
    public function getBaseVirtualHost(): string
81
    {
82
        return $this->baseVirtualHost;
83
    }
84
85
    /**
86
     * @param string $baseVirtualHost
87
     * @return void
88
     */
89
    public function setBaseVirtualHost(string $baseVirtualHost): void
90
    {
91
        $this->baseVirtualHost = $baseVirtualHost;
92
    }
93
94
    /**
95
     * @return bool
96
     */
97
    public function isSingleEnvironment(): bool
98
    {
99
        return $this->singleEnvironment;
100
    }
101
102
    /**
103
     * @param bool $singleEnvironment
104
     */
105
    public function setSingleEnvironment(bool $singleEnvironment): void
106
    {
107
        $this->singleEnvironment = $singleEnvironment;
108
    }
109
}
110