Normalizer   A
last analyzed

Complexity

Total Complexity 4

Size/Duplication

Total Lines 29
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 9
Bugs 1 Features 0
Metric Value
eloc 8
c 9
b 1
f 0
dl 0
loc 29
ccs 9
cts 9
cp 1
rs 10
wmc 4

2 Methods

Rating   Name   Duplication   Size   Complexity  
A addNormalizer() 0 3 1
A normalizeWidgetConfig() 0 12 3
1
<?php
2
3
namespace Imanghafoori\Widgets\Utils;
4
5
class Normalizer
6
{
7
    /**
8
     * @var NormalizerContract[]
9
     */
10
    private $normalizers = [];
11
12 24
    public function addNormalizer(NormalizerContract $normalizer): void
13
    {
14 24
        $this->normalizers[] = $normalizer;
15 24
    }
16
17
    /**
18
     * Figures out and sets the widget configs according to conventions.
19
     *
20
     * @param  object  $widget
21
     */
22 24
    public function normalizeWidgetConfig($widget): void
23
    {
24
        // to avoid normalizing a widget multiple times unnecessarily :
25 24
        if (isset($widget->isNormalized)) {
26 6
            return;
27
        }
28
29 24
        foreach ($this->normalizers as $normalizer) {
30 24
            $normalizer->normalize($widget);
31
        }
32
33 24
        $widget->isNormalized = true;
34 24
    }
35
}
36