Extension   A
last analyzed

Complexity

Total Complexity 1

Size/Duplication

Total Lines 32
Duplicated Lines 0 %

Importance

Changes 0
Metric Value
dl 0
loc 32
rs 10
c 0
b 0
f 0
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A loadConfiguration() 0 17 1
1
<?php
2
3
namespace Rostenkowski\Resize;
4
5
6
use Nette\DI\CompilerExtension;
7
use Nette\DI\Helpers;
8
use Rostenkowski\Resize\Entity\ImageEntity;
9
use Rostenkowski\Resize\Macro\ImageMacro;
10
11
class Extension extends CompilerExtension
12
{
13
14
	protected $defaults = [
15
		'imageEntity'  => ImageEntity::class,
16
		'storageClass' => ImageStorage::class,
17
		'storageDir'   => '%appDir%/../storage/images',
18
		'cacheDir'     => '%wwwDir%/cache/images',
19
		'basePath'     => '/cache/images/',
20
		'macros'       => [
21
			ImageMacro::class . '::install'
22
		]
23
	];
24
25
26
	public function loadConfiguration()
27
	{
28
		$builder = $this->getContainerBuilder();
29
		$config = Helpers::expand($this->validateConfig($this->defaults), $this->getContainerBuilder()->parameters);
30
31
		$builder
32
			->addDefinition($this->prefix('storage'))
33
			->setFactory($config['storageClass'], [
34
				$config['storageDir'],
35
				$config['cacheDir'],
36
				$config['basePath'],
37
			]);
38
39
		$builder = $this->getContainerBuilder();
40
		$definition = $builder->getDefinition('latte.latteFactory');
41
		$setup = '?->onCompile[] = function ($engine) { ' . ImageMacro::class . '::install($engine->getCompiler()); }';
42
		$definition->addSetup($setup, ['@self']);
43
	}
44
45
}
46