Completed
Push — master ( 3f6851...6e71e0 )
by Milan
03:43
created

UploadExtension   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 33
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

Changes 0
Metric Value
wmc 4
lcom 1
cbo 4
dl 0
loc 33
rs 10
c 0
b 0
f 0

1 Method

Rating   Name   Duplication   Size   Complexity  
B loadConfiguration() 0 26 4
1
<?php
2
3
namespace h4kuna\Upload\DI;
4
5
use Nette\DI;
6
7
class UploadExtension extends DI\CompilerExtension
8
{
9
	private $defaults = [
10
		'destinations' => '%wwwDir%/upload',
11
	];
12
13
	public function loadConfiguration()
14
	{
15
		$this->config += $this->defaults;
16
		$builder = $this->getContainerBuilder();
17
		$config = DI\Helpers::expand($this->config, $builder->parameters);
18
		if (!is_array($config['destinations'])) {
19
			$config['destinations'] = ['default' => $config['destinations']];
20
		}
21
22
		foreach ($config['destinations'] as $i => $destination) {
23
			if (is_dir($destination)) {
24
				$definition = $builder->addDefinition($this->prefix('driver.' . $i))
25
					->setClass('h4kuna\Upload\Driver\LocalFilesystem', [$destination]);
26
			} else {
27
				$definition = $destination;
28
			}
29
30
			// Download
31
			$builder->addDefinition($this->prefix('download.' . $i))
32
				->setClass('h4kuna\Upload\Download', [$definition, '@http.request', '@http.response']);
33
34
			// Upload
35
			$builder->addDefinition($this->prefix('upload.' . $i))
36
				->setClass('h4kuna\Upload\Upload', [$definition]);
37
		}
38
	}
39
}
40