Btn   A
last analyzed

Complexity

Total Complexity 7

Size/Duplication

Total Lines 52
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 52
ccs 16
cts 16
cp 1
rs 10
c 0
b 0
f 0
wmc 7

3 Methods

Rating   Name   Duplication   Size   Complexity  
A validateBtn() 0 10 3
A appendBtn() 0 6 1
A btns() 0 10 3
1
<?php
2
3
namespace DingRobot\Message\Traits;
4
5
trait Btn
6
{
7
    protected $btns = [];
8
9
    protected static $btnFields = ['title', 'actionURL'];
10
11 3
    public function btns(array $btns)
12
    {
13 3
        if (!empty($btns)) {
14 3
            foreach ($btns as $btn) {
15 3
                $this->validateBtn($btn);
16
            }
17
        }
18 2
        $this->btns = $btns;
19
20 2
        return $this;
21
    }
22
23
    /**
24
     * append button
25
     * 追加按钮
26
     *
27
     * @param array $btn
28
     *
29
     * @return $this
30
     */
31 2
    public function appendBtn($btn = [])
32
    {
33 2
        $this->validateBtn($btn);
34 1
        $this->btns[] = $btn;
35
36 1
        return $this;
37
    }
38
39
    /**
40
     * validate button
41
     * 校验按钮
42
     *
43
     * @param $btn
44
     *
45
     * @return bool
46
     */
47 3
    protected function validateBtn($btn)
48
    {
49 3
        if (!is_array($btn)) {
50 1
            throw new \InvalidArgumentException('wrong btn params');
51
        }
52 3
        if (array_diff(array_keys($btn), self::$btnFields)) {
53 1
            throw new \InvalidArgumentException('wrong btn params');
54
        }
55
56 2
        return true;
57
    }
58
}