Completed
Push — master ( 4ea525...0da2a9 )
by Peter
06:28
created

SourceManager::__construct()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 6
Code Lines 4

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 5
CRAP Score 1

Importance

Changes 2
Bugs 0 Features 0
Metric Value
c 2
b 0
f 0
dl 0
loc 6
ccs 5
cts 5
cp 1
rs 9.4285
cc 1
eloc 4
nc 1
nop 2
crap 1
1
<?php
2
3
/**
4
 * This software package is licensed under `AGPL, Commercial` license[s].
5
 *
6
 * @package maslosoft/embedi
7
 * @license AGPL, Commercial
8
 *
9
 * @copyright Copyright (c) Peter Maselkowski <[email protected]>
10
 *
11
 */
12
13
namespace Maslosoft\EmbeDi\Managers;
14
15
use Maslosoft\EmbeDi\EmbeDi;
16
use Maslosoft\EmbeDi\Storage\SourceStorage;
17
18
/**
19
 * SourceManager
20
 *
21
 * @author Piotr Maselkowski <pmaselkowski at gmail.com>
22
 */
23
class SourceManager
24
{
25
26
	/**
27
	 * Instance id
28
	 * @var string
29
	 */
30
	private $_instanceId = '';
31
32
	/**
33
	 * Preset ID
34
	 * @var string
35
	 */
36
	private $_presetId = '';
37
38
	/**
39
	 * Source storage
40
	 * @var SourceStorage
41
	 */
42
	private $storage = null;
43
44 17
	public function __construct($instanceId = EmbeDi::DefaultInstanceId, $presetId = null)
45
	{
46 17
		$this->_instanceId = $instanceId;
47 17
		$this->_presetId = $presetId;
48 17
		$this->storage = new SourceStorage(__CLASS__, $instanceId, $presetId);
49 17
	}
50
51 1
	public function add($source)
52
	{
53 1
		$sources = $this->storage->sources;
54 1
		$sources[] = $source;
55 1
		$this->storage->sources = $sources;
56 1
	}
57
58 1
	public function get($configName)
59
	{
60 1
		foreach ($this->storage->sources as $configs)
61
		{
62 1
			foreach ($configs as $name => $config)
63
			{
64 1
				if ($name === $configName)
65 1
				{
66 1
					return EmbeDi::fly($this->_instanceId, $this->_presetId)->apply($config);
67
				}
68 1
			}
69
		}
70
	}
71
72
}
73