SourceManager   A
last analyzed

Complexity

Total Complexity 6

Size/Duplication

Total Lines 50
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 2

Test Coverage

Coverage 89.47%

Importance

Changes 0
Metric Value
wmc 6
lcom 1
cbo 2
dl 0
loc 50
ccs 17
cts 19
cp 0.8947
rs 10
c 0
b 0
f 0

3 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 6 1
A add() 0 6 1
A get() 0 13 4
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