ViewPackage   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 42
Duplicated Lines 0 %

Test Coverage

Coverage 31.25%

Importance

Changes 9
Bugs 0 Features 2
Metric Value
wmc 3
eloc 17
c 9
b 0
f 2
dl 0
loc 42
ccs 5
cts 16
cp 0.3125
rs 10

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getGlobalMiddleware() 0 5 1
A addToContainer() 0 7 1
A getMiddleware() 0 12 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace Bone\View;
6
7
use Barnacle\Container;
8
use Barnacle\RegistrationInterface;
9
use Bone\Http\GlobalMiddlewareRegistrationInterface;
10
use Bone\Http\Middleware\Stack;
11
use Bone\Server\SiteConfig;
12
use Bone\View\Extension\Plates\AlertBox;
13
use Bone\View\Middleware\ExceptionMiddleware;
14
use Bone\View\Middleware\LayoutMiddleware;
15
use Bone\View\ViewEngine;
16
17
class ViewPackage implements RegistrationInterface, GlobalMiddlewareRegistrationInterface
18
{
19
    /**
20
     * @param Container $c
21
     */
22 1
    public function addToContainer(Container $c)
23
    {
24
        // set up the view engine dependencies
25 1
        $viewEngine = new ViewEngine();
26 1
        $viewEngine->loadExtension(new AlertBox());
27 1
        $c[ViewEngine::class] = $viewEngine;
28 1
        $c[ViewEngineInterface::class] = $viewEngine;
29
    }
30
31
    /**
32
     * @param Container $container
33
     * @return array
34
     */
35
    public function getMiddleware(Container $c): array
36
    {
37
        $defaultLayout = $c->get('default_layout');
38
        $errorPages = $c->get('error_pages');
39
        $viewEngine = $c->get(ViewEngineInterface::class);
40
        $config = $c->get(SiteConfig::class);
41
        $layoutMiddleware = new LayoutMiddleware($viewEngine, $defaultLayout, $config);
42
        $exceptionMiddleware = new ExceptionMiddleware($viewEngine, $errorPages);
43
44
        return [
45
            $layoutMiddleware,
46
            $exceptionMiddleware,
47
        ];
48
    }
49
50
    /**
51
     * @param Container $c
52
     * @return array
53
     */
54
    public function getGlobalMiddleware(Container $c): array
55
    {
56
        return [
57
            LayoutMiddleware::class,
58
            ExceptionMiddleware::class,
59
        ];
60
    }
61
}
62