1: | <?php |
2: | |
3: | namespace ngatngay\http; |
4: | |
5: | class response { |
6: | private $data; |
7: | private $status; |
8: | private array $headers = []; |
9: | |
10: | public function __construct( |
11: | $data, |
12: | $status, |
13: | $headers = [] |
14: | ) { |
15: | $this->data = $data; |
16: | $this->status = $status; |
17: | $this->headers = $headers; |
18: | } |
19: | |
20: | public function data($data) |
21: | { |
22: | $this->data = $data; |
23: | return $this; |
24: | } |
25: | public function status($status) |
26: | { |
27: | $this->status = $status; |
28: | return $this; |
29: | } |
30: | public function json() |
31: | { |
32: | $this->headers += ['Content-Type: application/json']; |
33: | |
34: | if (is_array($this->data)) { |
35: | $this->data = json_encode($this->data, JSON_PRETTY_PRINT); |
36: | } |
37: | return $this; |
38: | } |
39: | |
40: | public function headers($headers) |
41: | { |
42: | $this->headers = $headers; |
43: | return $this; |
44: | } |
45: | |
46: | public function send() |
47: | { |
48: | if (is_array($this->data)) { |
49: | $this->json(); |
50: | } |
51: | |
52: | http_response_code($this->status); |
53: | |
54: | $this->headers = array_unique($this->headers); |
55: | foreach ($this->headers as $header) { |
56: | header($header); |
57: | } |
58: | |
59: | exit($this->data); |
60: | } |
61: | } |