BuildersBootstrapper::registerBindings()   A
last analyzed

Complexity

Conditions 1
Paths 1

Size

Total Lines 23
Code Lines 11

Duplication

Lines 0
Ratio 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
cc 1
eloc 11
c 1
b 0
f 0
nc 1
nop 1
dl 0
loc 23
rs 9.9
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