EasyHtmlElementServiceProvider   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 48
Duplicated Lines 0 %

Coupling/Cohesion

Components 1
Dependencies 4

Importance

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

3 Methods

Rating   Name   Duplication   Size   Complexity  
B register() 0 31 1
A boot() 0 4 1
A provides() 0 4 1
1
<?php
2
3
namespace NatePage\EasyHtmlElement\Bridge\Laravel;
4
5
use Illuminate\Support\ServiceProvider;
6
use NatePage\EasyHtmlElement\HtmlElement;
7
8
class EasyHtmlElementServiceProvider extends ServiceProvider
9
{
10
    const CONFIG_PATH = __DIR__.'/config/easy_html_element.php';
11
12
    protected $defer = true;
13
14
    public function register(){
15
        $this->app->singleton(HtmlElement::class, function($app){
16
            $config = $app['config']['easy_html_element'];
17
18
            $map = $config['map'];
19
            $encoding = $config['encoding'];
20
            $escaperClass = $config['escaper'];
21
            $branchValidatorClass = $config['branch_validator'];
22
            $escaping = $config['escaping'];
23
24
            $escaper = new $escaperClass($encoding);
25
            $escaper
26
                ->setEscapeHtml($escaping['html'])
27
                ->setEscapeHtmlAttr($escaping['html_attr'])
28
                ->setEscapeCss($escaping['css'])
29
                ->setEscapeJs($escaping['js'])
30
                ->setEscapeUrl($escaping['url'])
31
            ;
32
33
            $htmlElement = new HtmlElement($map);
34
35
            $branchValidator = new $branchValidatorClass($htmlElement);
36
37
            $htmlElement
38
                ->setEscaper($escaper)
39
                ->setBranchValidator($branchValidator)
40
            ;
41
42
            return $htmlElement;
43
        });
44
    }
45
46
    public function boot()
47
    {
48
        $this->publishes([self::CONFIG_PATH => config_path('easy_html_element.php')]);
49
    }
50
51
    public function provides()
52
    {
53
        return [HtmlElement::class];
54
    }
55
}
56