1
|
|
|
<?php |
2
|
|
|
|
3
|
|
|
namespace alsvanzelf\jsonapi\helpers; |
4
|
|
|
|
5
|
|
|
use alsvanzelf\jsonapi\objects\LinkObject; |
6
|
|
|
use alsvanzelf\jsonapi\objects\LinksArray; |
7
|
|
|
use alsvanzelf\jsonapi\objects\LinksObject; |
8
|
|
|
|
9
|
|
|
trait LinksManager { |
10
|
|
|
/** @var LinksObject */ |
11
|
|
|
protected $links; |
12
|
|
|
|
13
|
|
|
/** |
14
|
|
|
* human api |
15
|
|
|
*/ |
16
|
|
|
|
17
|
|
|
/** |
18
|
|
|
* set a key containing a link |
19
|
|
|
* |
20
|
|
|
* @param string $key |
21
|
|
|
* @param string $href |
22
|
|
|
* @param array $meta optional, if given a LinkObject is added, otherwise a link string is added |
23
|
|
|
*/ |
24
|
28 |
|
public function addLink($key, $href, array $meta=[]) { |
25
|
28 |
|
$this->ensureLinksObject(); |
26
|
28 |
|
$this->links->add($key, $href, $meta); |
27
|
|
|
} |
28
|
|
|
|
29
|
|
|
/** |
30
|
|
|
* append a link to a key with an array of links |
31
|
|
|
* |
32
|
|
|
* @deprecated array links are not supported anymore {@see ->addLink()} |
33
|
|
|
* |
34
|
|
|
* @param string $key |
35
|
|
|
* @param string $href |
36
|
|
|
* @param array $meta optional, if given a LinkObject is added, otherwise a link string is added |
37
|
|
|
*/ |
38
|
4 |
|
public function appendLink($key, $href, array $meta=[]) { |
39
|
4 |
|
$this->ensureLinksObject(); |
40
|
4 |
|
$this->links->append($key, $href, $meta); |
|
|
|
|
41
|
|
|
} |
42
|
|
|
|
43
|
|
|
/** |
44
|
|
|
* spec api |
45
|
|
|
*/ |
46
|
|
|
|
47
|
|
|
/** |
48
|
|
|
* set a key containing a LinkObject |
49
|
|
|
* |
50
|
|
|
* @param string $key |
51
|
|
|
* @param LinkObject $linkObject |
52
|
|
|
*/ |
53
|
14 |
|
public function addLinkObject($key, LinkObject $linkObject) { |
54
|
14 |
|
$this->ensureLinksObject(); |
55
|
14 |
|
$this->links->addLinkObject($key, $linkObject); |
56
|
|
|
} |
57
|
|
|
|
58
|
|
|
/** |
59
|
|
|
* set a key containing a LinksArray |
60
|
|
|
* |
61
|
|
|
* @deprecated array links are not supported anymore {@see ->addLinkObject()} |
62
|
|
|
* |
63
|
|
|
* @param string $key |
64
|
|
|
* @param LinksArray $linksArray |
65
|
|
|
*/ |
66
|
2 |
|
public function addLinksArray($key, LinksArray $linksArray) { |
67
|
2 |
|
$this->ensureLinksObject(); |
68
|
2 |
|
$this->links->addLinksArray($key, $linksArray); |
|
|
|
|
69
|
|
|
} |
70
|
|
|
|
71
|
|
|
/** |
72
|
|
|
* append a LinkObject to a key with a LinksArray |
73
|
|
|
* |
74
|
|
|
* @deprecated array links are not supported anymore {@see ->addLinkObject()} |
75
|
|
|
* |
76
|
|
|
* @param string $key |
77
|
|
|
* @param LinkObject $linkObject |
78
|
|
|
*/ |
79
|
1 |
|
public function appendLinkObject($key, LinkObject $linkObject) { |
80
|
1 |
|
$this->ensureLinksObject(); |
81
|
1 |
|
$this->links->appendLinkObject($key, $linkObject); |
|
|
|
|
82
|
|
|
} |
83
|
|
|
|
84
|
|
|
/** |
85
|
|
|
* set a LinksObject containing all links |
86
|
|
|
* |
87
|
|
|
* @param LinksObject $linksObject |
88
|
|
|
*/ |
89
|
52 |
|
public function setLinksObject(LinksObject $linksObject) { |
90
|
52 |
|
$this->links = $linksObject; |
91
|
|
|
} |
92
|
|
|
|
93
|
|
|
/** |
94
|
|
|
* internal api |
95
|
|
|
*/ |
96
|
|
|
|
97
|
|
|
/** |
98
|
|
|
* @internal |
99
|
|
|
*/ |
100
|
46 |
|
private function ensureLinksObject() { |
101
|
46 |
|
if ($this->links === null) { |
102
|
46 |
|
$this->setLinksObject(new LinksObject()); |
103
|
|
|
} |
104
|
|
|
} |
105
|
|
|
} |
106
|
|
|
|
This function has been deprecated. The supplier of the function has supplied an explanatory message.
The explanatory message should give you some clue as to whether and when the function will be removed and what other function to use instead.