ButtonBuilderTrait   A
last analyzed

Complexity

Total Complexity 3

Size/Duplication

Total Lines 39
Duplicated Lines 0 %

Importance

Changes 1
Bugs 0 Features 0
Metric Value
eloc 7
dl 0
loc 39
rs 10
c 1
b 0
f 0
wmc 3

3 Methods

Rating   Name   Duplication   Size   Complexity  
A badge() 0 3 1
A button() 0 3 1
A buttonGroup() 0 3 1
1
<?php
2
3
namespace Lagdo\UiBuilder\Builder;
4
5
use Lagdo\UiBuilder\Component\Base;
6
7
trait ButtonBuilderTrait
8
{
9
    /**
10
     * @var string
11
     */
12
    protected string $buttonComponentClass = '';
13
14
    /**
15
     * @var string
16
     */
17
    protected string $buttonGroupComponentClass = '';
18
19
    /**
20
     * @var string
21
     */
22
    protected string $badgeComponentClass = '';
23
24
    /**
25
     * @inheritDoc
26
     */
27
    public function buttonGroup(...$arguments): Base\ButtonGroupComponent
28
    {
29
        return $this->createComponentOfClass($this->buttonGroupComponentClass, $arguments);
0 ignored issues
show
Bug introduced by
It seems like createComponentOfClass() must be provided by classes using this trait. How about adding it as abstract method to this trait? ( Ignorable by Annotation )

If this is a false-positive, you can also ignore this issue in your code via the ignore-call  annotation

29
        return $this->/** @scrutinizer ignore-call */ createComponentOfClass($this->buttonGroupComponentClass, $arguments);
Loading history...
30
    }
31
32
    /**
33
     * @inheritDoc
34
     */
35
    public function button(...$arguments): Base\ButtonComponent
36
    {
37
        return $this->createComponentOfClass($this->buttonComponentClass, $arguments);
38
    }
39
40
    /**
41
     * @inheritDoc
42
     */
43
    public function badge(...$arguments): Base\BadgeComponent
44
    {
45
        return $this->createComponentOfClass($this->badgeComponentClass, $arguments);
46
    }
47
}
48