Passed
Push — master ( 9d8949...e36a68 )
by Peter
02:19
created

Unordered   A

Complexity

Total Complexity 4

Size/Duplication

Total Lines 46
Duplicated Lines 0 %

Importance

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

4 Methods

Rating   Name   Duplication   Size   Complexity  
A build() 0 8 1
A getIdentifier() 0 3 1
A getPartClassesByOrder() 0 3 1
A wrapperTags() 0 3 1
1
<?php
2
3
declare(strict_types=1);
4
5
namespace AbterPhp\Website\Template\Builder\ContentList;
6
7
use AbterPhp\Framework\Constant\Html5;
8
use AbterPhp\Framework\Template\Data;
9
use AbterPhp\Framework\Template\IBuilder;
10
use AbterPhp\Framework\Template\IData;
11
use AbterPhp\Framework\Template\ParsedTemplate;
12
use AbterPhp\Website\Domain\Entities\ContentList as Entity;
13
14
class Unordered implements IBuilder
15
{
16
    use ItemTrait;
17
18
    const IDENTIFIER = 'unordered-list';
19
20
    /**
21
     * @return string
22
     */
23
    public function getIdentifier(): string
24
    {
25
        return static::IDENTIFIER;
26
    }
27
28
    /**
29
     * @return string[]
30
     */
31
    public function getPartClassesByOrder(): array
32
    {
33
        return ['item-name', 'item-body', 'item-image'];
34
    }
35
36
    /**
37
     * @return string[]
38
     */
39
    public function wrapperTags(): array
40
    {
41
        return [Html5::TAG_SPAN, Html5::TAG_SPAN, Html5::TAG_SPAN];
42
    }
43
44
    /**
45
     * @SuppressWarnings(PHPMD.UnusedFormalParameter)
46
     *
47
     * @param Entity              $list
48
     * @param ParsedTemplate|null $template
49
     *
50
     * @return Data
51
     */
52
    public function build($list, ?ParsedTemplate $template = null): IData
53
    {
54
        $html = $this->buildItems($list, Html5::TAG_UL, Html5::TAG_LI);
55
56
        return new Data(
57
            $list->getIdentifier(),
58
            [],
59
            ['body' => $html]
60
        );
61
    }
62
}
63