Completed
Push — master ( 31c661...c4ad3d )
by Iman
07:37
created

SingletonServices   A

Complexity

Total Complexity 1

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Coupling/Cohesion

Components 0
Dependencies 12

Importance

Changes 0
Metric Value
dl 0
loc 48
rs 10
c 0
b 0
f 0
wmc 1
lcom 0
cbo 12

1 Method

Rating   Name   Duplication   Size   Complexity  
B registerSingletons() 0 40 1
1
<?php
2
3
namespace Imanghafoori\Widgets;
4
5
use Imanghafoori\Widgets\Utils\Normalizers\CacheNormalizer;
6
use Imanghafoori\Widgets\Utils\Normalizers\TemplateNormalizer;
7
use Imanghafoori\Widgets\Utils\Normalizers\ContextAsNormalizer;
8
use Imanghafoori\Widgets\Utils\Normalizers\PresenterNormalizer;
9
use Imanghafoori\Widgets\Utils\Normalizers\ControllerNormalizer;
10
use Imanghafoori\Widgets\Utils\Normalizer;
11
12
class SingletonServices
13
{
14
15
    /**
16
     * Register classes as singletons.
17
     */
18
    public function registerSingletons($app)
19
    {
20
        $app->singleton('command.imanghafoori.widget', function ($app) {
21
            return $app['Imanghafoori\Widgets\WidgetGenerator'];
22
        });
23
24
        $app->singleton(Normalizer::class, function () {
25
            $cacheNormalizer = new CacheNormalizer();
26
            $tplNormalizer = new TemplateNormalizer();
27
            $presenterNormalizer = new PresenterNormalizer();
28
            $ctrlNormalizer = new ControllerNormalizer();
29
            $contextAsNormalizer = new ContextAsNormalizer();
30
31
            return new Utils\Normalizer($tplNormalizer, $cacheNormalizer, $presenterNormalizer, $ctrlNormalizer, $contextAsNormalizer);
32
        });
33
34
        $app->singleton(Utils\HtmlMinifier::class, function () {
35
            return new Utils\HtmlMinifier();
36
        });
37
38
        $app->singleton(Utils\DebugInfo::class, function () {
39
            return new Utils\DebugInfo();
40
        });
41
42
        $app->singleton(Utils\Policies::class, function () {
43
            return new Utils\Policies();
44
        });
45
46
        $app->singleton(Utils\Cache::class, function () {
47
            return new Utils\Cache();
48
        });
49
50
        $app->singleton(Utils\CacheTag::class, function () {
51
            return new Utils\CacheTag();
52
        });
53
54
        $app->singleton(Utils\WidgetRenderer::class, function () {
55
            return new Utils\WidgetRenderer();
56
        });
57
    }
58
59
}
60