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: }