Link   A
last analyzed

Complexity

Total Complexity 5

Size/Duplication

Total Lines 54
Duplicated Lines 0 %

Test Coverage

Coverage 100%

Importance

Changes 0
Metric Value
dl 0
loc 54
ccs 13
cts 13
cp 1
rs 10
c 0
b 0
f 0
wmc 5

3 Methods

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