Kernel::__construct()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 9
Code Lines 5

Duplication

Lines 0
Ratio 0 %

Code Coverage

Tests 0
CRAP Score 2

Importance

Changes 0
Metric Value
cc 1
eloc 5
nc 1
nop 2
dl 0
loc 9
ccs 0
cts 6
cp 0
crap 2
rs 10
c 0
b 0
f 0
1
<?php
2
3
namespace CompoLab\Application\Http;
4
5
use CompoLab\Application\GitlabRepositoryManager;
6
use CompoLab\Application\Http\Controller\ExceptionController;
7
use Gitlab\Client as Gitlab;
8
use Symfony\Component\EventDispatcher\EventDispatcher;
9
use Symfony\Component\HttpFoundation\RequestStack;
10
use Symfony\Component\HttpKernel\Controller\ArgumentResolver;
11
use Symfony\Component\HttpKernel\Controller\ControllerResolver;
12
use Symfony\Component\HttpKernel\EventListener\ExceptionListener;
13
use Symfony\Component\HttpKernel\EventListener\RouterListener;
14
use Symfony\Component\HttpKernel\HttpKernel;
15
use Symfony\Component\Routing\Matcher\UrlMatcher;
16
use Symfony\Component\Routing\RequestContext;
17
18
final class Kernel extends HttpKernel
19
{
20
    public function __construct(Gitlab $gitlab, GitlabRepositoryManager $repositoryManager)
21
    {
22
        $matcher = new UrlMatcher(new Routing($gitlab, $repositoryManager), new RequestContext);
23
24
        $dispatcher = new EventDispatcher;
25
        $dispatcher->addSubscriber(new ExceptionListener([ExceptionController::class, 'handle']));
26
        $dispatcher->addSubscriber(new RouterListener($matcher, new RequestStack));
27
28
        parent::__construct($dispatcher, new ControllerResolver, new RequestStack, new ArgumentResolver);
29
    }
30
}
31