1 <?php
2
3 namespace Http\Message\Authentication;
4
5 use Http\Message\Authentication;
6 use Psr\Http\Message\RequestInterface;
7
8 9 10 11 12 13 14 15
16 final class QueryParam implements Authentication
17 {
18 19 20
21 private $params = [];
22
23 24 25
26 public function __construct(array $params)
27 {
28 $this->params = $params;
29 }
30
31 32 33
34 public function authenticate(RequestInterface $request)
35 {
36 $uri = $request->getUri();
37 $query = $uri->getQuery();
38 $params = [];
39
40 parse_str($query, $params);
41
42 $params = array_merge($params, $this->params);
43
44 $query = http_build_query($params);
45
46 $uri = $uri->withQuery($query);
47
48 return $request->withUri($uri);
49 }
50 }
51