Passed
Push — feature/rename-classresolverca... ( 4454d3 )
by Jesús
04:01
created

Gacela   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 6
Bugs 0 Features 0
Metric Value
eloc 12
dl 0
loc 23
ccs 12
cts 12
cp 1
rs 10
c 6
b 0
f 0
wmc 3

1 Method

Rating   Name   Duplication   Size   Complexity  
A bootstrap() 0 16 3
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Gacela\Framework;
6
7
use Closure;
8
use Gacela\Framework\Bootstrap\GacelaConfig;
9
use Gacela\Framework\Bootstrap\SetupGacela;
10
use Gacela\Framework\ClassResolver\AbstractClassResolver;
11
use Gacela\Framework\ClassResolver\ClassNameFinder\ClassNameFinder;
12
use Gacela\Framework\Config\Config;
13
14
final class Gacela
15
{
16
    /**
17
     * Define the entry point of Gacela.
18
     *
19
     * @param null|Closure(GacelaConfig):void $configFn
20
     */
21 34
    public static function bootstrap(string $appRootDir, Closure $configFn = null): void
22
    {
23 34
        $setup = $configFn !== null
24 18
            ? SetupGacela::fromCallable($configFn)
25 34
            : new SetupGacela();
26
27 34
        if ($setup->isResetCache()) {
28 8
            ClassNameFinder::resetCachedClassNames();
29 8
            AbstractClassResolver::resetCache();
30 8
            Config::resetInstance();
31
        }
32
33 34
        Config::getInstance()
34 34
            ->setAppRootDir($appRootDir)
35 34
            ->setSetup($setup)
36 34
            ->init();
37
    }
38
}
39