AppFactory   A
last analyzed

Complexity

Total Complexity 2

Size/Duplication

Total Lines 23
Duplicated Lines 0 %

Importance

Changes 7
Bugs 0 Features 0
Metric Value
eloc 14
c 7
b 0
f 0
dl 0
loc 23
rs 10
wmc 2

2 Methods

Rating   Name   Duplication   Size   Complexity  
A __construct() 0 3 1
A __invoke() 0 14 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Chinstrap\Core\Kernel;
6
7
use Chinstrap\Core\Http\Middleware\ClockworkMiddleware;
8
use Chinstrap\Core\Http\Middleware\ContentLengthMiddleware;
9
use Chinstrap\Core\Http\Middleware\MaintenanceModeMiddleware;
10
use Chinstrap\Core\Http\Middleware\NotFoundMiddleware;
11
use Chinstrap\Core\Http\Middleware\RoutesMiddleware;
12
use Chinstrap\Core\Http\Middleware\WhoopsMiddleware;
13
use Laminas\Stratigility\MiddlewarePipe;
14
use Psr\Container\ContainerInterface;
15
use PSR7Sessions\Storageless\Http\SessionMiddleware;
16
17
final class AppFactory
18
{
19
    private ContainerInterface $container;
20
21
    public function __construct(ContainerInterface $container)
22
    {
23
        $this->container = $container;
24
    }
25
26
    public function __invoke(): MiddlewarePipe
27
    {
28
        $app = new MiddlewarePipe();
29
        $kernel = new Kernel($this->container);
30
        $kernel->bootstrap();
31
32
        $app->pipe($this->container->get(ClockworkMiddleware::class));
33
        $app->pipe($this->container->get(WhoopsMiddleware::class));
34
        $app->pipe($this->container->get(ContentLengthMiddleware::class));
35
        $app->pipe($this->container->get(MaintenanceModeMiddleware::class));
36
        $app->pipe($this->container->get(SessionMiddleware::class));
37
        $app->pipe($this->container->get(RoutesMiddleware::class));
38
        $app->pipe($this->container->get(NotFoundMiddleware::class));
39
        return $app;
40
    }
41
}
42