PluginProbe ʕ •ᴥ•ʔ
Admin Columns / 7.0.13
Admin Columns v7.0.13
7.1.4 7.0.19 2.3.5 2.4 2.4.1 2.4.10 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.4.8 2.4.9 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.6.1 2.5.6.2 2.5.6.3 2.5.6.4 3.0 3.0.1 3.0.2 3.0.3 3.0.5 3.0.7 3.1 3.1.1 3.1.10 3.1.2 3.1.3 3.1.5 3.2.3 3.2.7 3.3.1 3.4.1 3.4.6 3.4.8 4.0.1 4.0.3 4.1.6 4.2.2 4.2.5 4.3 4.3.2 4.4.1 4.4.4 4.4.5 4.5.5 4.6.1 4.7.18 4.7.19 4.7.20 4.7.7 7.0.13 7.0.14 7.0.16 trunk 1.0 1.1 1.1.3 1.2 1.2.1 1.3 1.3.1 1.4 1.4.1 1.4.2 1.4.3 1.4.4 1.4.5 1.4.5.1 1.4.6 1.4.6.1 1.4.6.2 1.4.6.3 1.4.6.4 1.4.7 1.4.8 1.4.9 2.0.0 2.0.1 2.0.2 2.0.3 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.2 2.2.1 2.2.1.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.5.1 2.2.6 2.2.6.1 2.2.6.2 2.2.6.3 2.2.6.4 2.2.7 2.2.8 2.2.8.1 2.2.9 2.3.1 2.3.2 2.3.3
codepress-admin-columns / classes / Response / Json.php
codepress-admin-columns / classes / Response Last commit date
Json.php 5 months ago JsonColumnFactory.php 5 months ago JsonListScreenSettingsFactory.php 5 months ago
Json.php
104 lines
1 <?php
2
3 declare(strict_types=1);
4
5 namespace AC\Response;
6
7 use LogicException;
8
9 class Json
10 {
11
12 public const MESSAGE = 'message';
13
14 protected array $parameters = [];
15
16 protected array $headers = [];
17
18 protected int $status_code = 200;
19
20 public function __construct(array $parameters = [])
21 {
22 $this->set_header('Content-Type', 'application/json');
23
24 $this->parameters = $parameters;
25 }
26
27 /**
28 * @return never
29 */
30 public function send(): void
31 {
32 if (empty($this->parameters)) {
33 throw new LogicException('Missing response body.');
34 }
35
36 $this->send_response($this->parameters);
37 }
38
39 private function send_response($data): void
40 {
41 status_header($this->status_code);
42
43 foreach ($this->headers as $header) {
44 header($header);
45 }
46
47 echo json_encode($data);
48 exit;
49 }
50
51 public function error(): void
52 {
53 $this->send_response([
54 'success' => false,
55 'data' => $this->parameters,
56 ]);
57 }
58
59 public function success(): void
60 {
61 $this->send_response([
62 'success' => true,
63 'data' => $this->parameters,
64 ]);
65 }
66
67 public function set_parameter($key, $value): self
68 {
69 $this->parameters[$key] = $value;
70
71 return $this;
72 }
73
74 public function set_parameters(array $values): self
75 {
76 foreach ($values as $key => $value) {
77 $this->set_parameter($key, $value);
78 }
79
80 return $this;
81 }
82
83 public function set_header(string $name, string $value): self
84 {
85 $this->headers[] = sprintf('%s: %s', $name, $value);
86
87 return $this;
88 }
89
90 public function set_message(string $message): self
91 {
92 $this->set_parameter(self::MESSAGE, $message);
93
94 return $this;
95 }
96
97 public function set_status_code(int $code): self
98 {
99 $this->status_code = $code;
100
101 return $this;
102 }
103
104 }