forked from qpleple/cloudstack-php-client
-
Notifications
You must be signed in to change notification settings - Fork 3
Expand file tree
/
Copy pathConfiguration.php
More file actions
70 lines (58 loc) · 1.93 KB
/
Configuration.php
File metadata and controls
70 lines (58 loc) · 1.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
<?php declare(strict_types=1);
namespace MyENA\CloudStackClientGenerator;
use MyENA\CloudStackClientGenerator\Configuration\Environments;
use MyENA\CloudStackClientGenerator\Configuration\OverloadedClasses;
use Psr\Log\LoggerInterface;
/**
* Class Configuration
* @package MyENA\CloudStackClientGenerator
*/
class Configuration
{
/** @var \Psr\Log\LoggerInterface */
private $logger;
/** @var array */
private $config;
/** @var \MyENA\CloudStackClientGenerator\Configuration\Environments */
protected $environments;
/** @var \MyENA\CloudStackClientGenerator\Configuration\OverloadedClasses */
protected $overloadedClasses;
/** @var array */
protected $eventTypeMap = [];
/**
* Configuration constructor.
* @param \Psr\Log\LoggerInterface $logger
* @param array $config
*/
public function __construct(LoggerInterface $logger, array $config = [])
{
$this->logger = $logger;
$this->config = $config;
$this->eventTypeMap = require __DIR__ . '/../files/command_event_map.php';
$this->environments = new Environments($logger, $config['environments'] ?? []);
$this->overloadedClasses = new OverloadedClasses(
$logger,
$config['overloaded_classes'] ?? $config['overloadedClasses'] ?? []
);
}
public function __debugInfo()
{
$clone = clone $this;
unset($clone->now, $clone->HttpClient, $clone->logger, $clone->eventTypeMap);
return get_object_vars($clone);
}
/**
* @return \MyENA\CloudStackClientGenerator\Configuration\Environments
*/
public function getEnvironments(): Configuration\Environments
{
return $this->environments;
}
/**
* @return \MyENA\CloudStackClientGenerator\Configuration\OverloadedClasses
*/
public function getOverloadedClasses(): Configuration\OverloadedClasses
{
return $this->overloadedClasses;
}
}