Passed
Push — master ( 81beb2...14dfc0 )
by Radovan
11:10
created

Configurator   A

Complexity

Total Complexity 6

Size/Duplication

Total Lines 24
Duplicated Lines 0 %

Importance

Changes 3
Bugs 0 Features 1
Metric Value
eloc 17
c 3
b 0
f 1
dl 0
loc 24
rs 10
wmc 6

2 Methods

Rating   Name   Duplication   Size   Complexity  
A createLoader() 0 5 1
A getDefaultParameters() 0 15 5
1
<?php
2
declare(strict_types=1);
3
4
namespace Mallgroup\Bootstrap;
5
6
use Composer\Autoload\ClassLoader;
7
use Mallgroup\DI\Config\Adapters\EnvironmentAdapter;
8
use Nette\Bootstrap;
9
use Nette\DI\Config\Loader;
10
11
class Configurator extends Bootstrap\Configurator
12
{
13
    protected function createLoader(): Loader
14
    {
15
        $loader = parent::createLoader();
16
        $loader->addAdapter('env', EnvironmentAdapter::class);
17
        return $loader;
18
    }
19
20
	protected function getDefaultParameters(): array
21
	{
22
		$trace = debug_backtrace(DEBUG_BACKTRACE_IGNORE_ARGS);
23
		$last = end($trace);
24
		$debugMode = static::detectDebugMode();
25
		$loaderRc = class_exists(ClassLoader::class)
26
			? new \ReflectionClass(ClassLoader::class)
27
			: null;
28
		return [
29
			'appDir' => isset($trace[2]['file']) ? dirname($trace[2]['file']) : null,
30
			'wwwDir' => isset($last['file']) ? dirname($last['file']) : null,
31
			'vendorDir' => $loaderRc ? dirname($loaderRc->getFileName(), 2) : null,
32
			'debugMode' => $debugMode,
33
			'productionMode' => !$debugMode,
34
			'consoleMode' => PHP_SAPI === 'cli',
35
		];
36
	}
37
}
38