Completed
Push — master ( 872531...1bf3aa )
by Derek Stephen
03:51
created

ViewPackage   A

Complexity

Total Complexity 3

Size/Duplication

Total Lines 41
Duplicated Lines 0 %

Test Coverage

Coverage 31.25%

Importance

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

3 Methods

Rating   Name   Duplication   Size   Complexity  
A getGlobalMiddleware() 0 5 1
A addToContainer() 0 6 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
    }
29
30
    /**
31
     * @param Container $container
32
     * @return array
33
     */
34
    public function getMiddleware(Container $c): array
35
    {
36
        $defaultLayout = $c->get('default_layout');
37
        $errorPages = $c->get('error_pages');
38
        $viewEngine = $c->get(ViewEngine::class);
39
        $config = $c->get(SiteConfig::class);
40
        $layoutMiddleware = new LayoutMiddleware($viewEngine, $defaultLayout, $config);
41
        $exceptionMiddleware = new ExceptionMiddleware($viewEngine, $errorPages);
42
43
        return [
44
            $layoutMiddleware,
45
            $exceptionMiddleware,
46
        ];
47
    }
48
49
    /**
50
     * @param Container $c
51
     * @return array
52
     */
53
    public function getGlobalMiddleware(Container $c): array
54
    {
55
        return [
56
            LayoutMiddleware::class,
57
            ExceptionMiddleware::class,
58
        ];
59
    }
60
}
61