Passed
Push — master ( 6af672...0107a4 )
by Peter
07:37
created

BuildersBootstrapper   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 28
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 12
c 1
b 0
f 0
dl 0
loc 28
rs 10
wmc 1

1 Method

Rating   Name   Duplication   Size   Complexity  
A registerBindings() 0 23 1
1
<?php
2
3
namespace AbterPhp\Website\Bootstrappers\Http\Views;
4
5
use AbterPhp\Website\Http\Views\Builders\WebsiteBuilder;
6
use Opulence\Events\Dispatchers\IEventDispatcher;
7
use Opulence\Ioc\Bootstrappers\Bootstrapper;
8
use Opulence\Ioc\IContainer;
9
use Opulence\Views\Factories\IViewFactory;
10
use Opulence\Views\IView;
11
12
/**
13
 * Defines the view builders bootstrapper
14
 */
15
class BuildersBootstrapper extends Bootstrapper
16
{
17
    /**
18
     * @inheritdoc
19
     */
20
    public function registerBindings(IContainer $container)
21
    {
22
        /** @var IViewFactory $viewFactory */
23
        $viewFactory = $container->resolve(IViewFactory::class);
24
25
        $viewFactory->registerBuilder(
26
            'layouts/frontend/default',
27
            function (IView $view) use ($container) {
28
                /** @var IEventDispatcher $eventDispatcher */
29
                $eventDispatcher = $container->resolve(IEventDispatcher::class);
30
31
                /** @see WebsiteBuilder::build() */
32
                return (new WebsiteBuilder($eventDispatcher))->build($view);
33
            }
34
        );
35
        $viewFactory->registerBuilder(
36
            'layouts/frontend/empty',
37
            function (IView $view) use ($container) {
38
                /** @var IEventDispatcher $eventDispatcher */
39
                $eventDispatcher = $container->resolve(IEventDispatcher::class);
40
41
                /** @see WebsiteBuilder::build() */
42
                return (new WebsiteBuilder($eventDispatcher))->build($view);
43
            }
44
        );
45
    }
46
}
47