Completed
Pull Request — master (#2)
by Tomáš
09:22
created

AbstractExtensionAdapter::processConfig()   A

Complexity

Conditions 1
Paths 1

Size

Total Lines 4

Duplication

Lines 0
Ratio 0 %

Importance

Changes 0
Metric Value
dl 0
loc 4
rs 10
c 0
b 0
f 0
cc 1
nc 1
nop 2
1
<?php
2
3
declare(strict_types=1);
4
5
namespace SixtyEightPublishers\User\DI;
6
7
use Nette;
8
use SixtyEightPublishers;
9
10
abstract class AbstractExtensionAdapter implements IExtensionAdapter
11
{
12
	use Nette\SmartObject;
13
14
	/** @var array  */
15
	protected static $defaults = [];
16
17
	/** @var string  */
18
	protected $name;
19
20
	/** @var \Nette\DI\ContainerBuilder  */
21
	private $builder;
22
23
	/** @var array  */
24
	private $config;
25
26
	/** @var \ArrayObject  */
27
	private $sharedData;
28
29
	/**
30
	 * @param \Nette\DI\ContainerBuilder $builder
31
	 * @param string                     $name
32
	 * @param array                      $config
33
	 * @param \ArrayObject               $sharedData
34
	 */
35
	public function __construct(Nette\DI\ContainerBuilder $builder, string $name, array $config, \ArrayObject $sharedData)
36
	{
37
		$this->builder = $builder;
38
		$this->name = $name;
39
		$this->config = $this->processConfig($config, $sharedData);
40
		$this->sharedData = $sharedData;
41
	}
42
43
	/**
44
	 * @internal
45
	 *
46
	 * @param array        $config
47
	 * @param \ArrayObject $sharedData
48
	 *
49
	 * @return array
50
	 */
51
	protected function processConfig(array $config, \ArrayObject $sharedData): array
52
	{
53
		return $config;
54
	}
55
56
	/**
57
	 * @return void
58
	 * @throws \SixtyEightPublishers\User\Common\Exception\StopPropagationException
59
	 */
60
	protected function stopPropagation(): void
61
	{
62
		throw new SixtyEightPublishers\User\Common\Exception\StopPropagationException();
63
	}
64
65
	/**
66
	 * @return \Nette\DI\ContainerBuilder
67
	 */
68
	protected function getContainerBuilder(): Nette\DI\ContainerBuilder
69
	{
70
		return $this->builder;
71
	}
72
73
	/**
74
	 * @return array
75
	 */
76
	protected function getConfig(): array
77
	{
78
		return $this->config;
79
	}
80
81
	/**
82
	 * @param string $key
83
	 *
84
	 * @return mixed
85
	 */
86
	protected function getSharedData(string $key)
87
	{
88
		return $this->sharedData[$key];
89
	}
90
91
	/**
92
	 * @param string $id
93
	 *
94
	 * @return string
95
	 */
96
	protected function prefix(string $id): string
97
	{
98
		return substr_replace($id, $this->name . '.', substr($id, 0, 1) === '@' ? 1 : 0, 0);
99
	}
100
101
	/*************** interface \SixtyEightPublishers\User\DI\IExtensionAdapter ***************/
102
103
	/**
104
	 * {@inheritdoc}
105
	 */
106
	public static function getDefaults(): array
107
	{
108
		return static::$defaults;
109
	}
110
111
	/**
112
	 * {@inheritdoc}
113
	 */
114
	public function loadConfiguration(): void
115
	{
116
	}
117
118
	/**
119
	 * {@inheritdoc}
120
	 */
121
	public function beforeCompile(): void
122
	{
123
	}
124
125
	/**
126
	 * {@inheritdoc}
127
	 */
128
	public function afterCompile(Nette\PhpGenerator\ClassType $class): void
129
	{
130
	}
131
}
132