1 | <?php |
||||
2 | defined('BASEPATH') OR exit('No direct script access allowed'); |
||||
3 | |||||
4 | class RESTResponse extends CI_Controller |
||||
0 ignored issues
–
show
|
|||||
5 | { |
||||
6 | // Response Codes |
||||
7 | // 40* |
||||
8 | const BAD_REQUEST = 400; |
||||
9 | const UN_AUTHORIZED = 401; |
||||
10 | const FORBIDDEN = 403; |
||||
11 | const NOT_ACCEPTABLE = 406; |
||||
12 | const TOO_MANY_REQUESTS = 429; |
||||
13 | // 50* |
||||
14 | const INTERNAL_SERVER_ERROR = 500; |
||||
15 | const NOT_IMPLEMENTED = 501; |
||||
16 | /** |
||||
17 | * [protected HTTP Response Code] |
||||
18 | * @var int |
||||
19 | */ |
||||
20 | protected $code; |
||||
21 | /** |
||||
22 | * [protected Response Data] |
||||
23 | * @var mixed |
||||
24 | */ |
||||
25 | protected $data; |
||||
26 | /** |
||||
27 | * [protected Shoud Response be JSON Encoded?] |
||||
28 | * @var bool |
||||
29 | */ |
||||
30 | protected $json; |
||||
31 | function __construct($data=null, int $code=null) |
||||
32 | { |
||||
33 | $this->data = $data; |
||||
34 | $this->code = $code; |
||||
35 | } |
||||
36 | /** |
||||
37 | * [__toString description] |
||||
38 | * @date 2019-11-09 |
||||
39 | * @return string [description] |
||||
40 | */ |
||||
41 | public function __toString():string |
||||
42 | { |
||||
43 | return !$this->json ? $this->data : n_encode($this->data); |
||||
0 ignored issues
–
show
The function
n_encode was not found. Maybe you did not declare it correctly or list all dependencies?
(
Ignorable by Annotation
)
If this is a false-positive, you can also ignore this issue in your code via the
Loading history...
|
|||||
44 | } |
||||
45 | /** |
||||
46 | * [json description] |
||||
47 | * @date 2019-11-11 |
||||
48 | * @param [type] $data [description] |
||||
0 ignored issues
–
show
|
|||||
49 | * @param int $code [description] |
||||
50 | * @return RESTResponse [description] |
||||
51 | */ |
||||
52 | public function json($data, int $code):RESTResponse |
||||
53 | { |
||||
54 | $this->json = true; |
||||
55 | $this->code = $code; |
||||
56 | $this->data = $data; |
||||
57 | return $this; |
||||
58 | } |
||||
59 | |||||
60 | /** |
||||
61 | * [send description] |
||||
62 | * @date 2019-11-11 |
||||
63 | * @param boolean $exit [description] |
||||
64 | */ |
||||
65 | public function send(bool $exit=false):void |
||||
66 | { |
||||
67 | http_response_code($this->code ?? 200); |
||||
68 | |||||
69 | if ($this->json) header('Content-Type: application/json'); |
||||
70 | |||||
71 | if ($this->data !== null) echo !$this->json ? $this->data : json_encode($this->data, JSON_PRETTY_PRINT|JSON_UNESCAPED_SLASHES); |
||||
72 | |||||
73 | if ($exit) exit(EXIT_SUCCESS); |
||||
0 ignored issues
–
show
|
|||||
74 | } |
||||
75 | } |
||||
76 | ?> |
||||
0 ignored issues
–
show
It is not recommended to use PHP's closing tag
?> in files other than templates.
Using a closing tag in PHP files that only contain PHP code is not recommended as you might accidentally add whitespace after the closing tag which would then be output by PHP. This can cause severe problems, for example headers cannot be sent anymore. A simple precaution is to leave off the closing tag as it is not required, and it also has no negative effects whatsoever.
Loading history...
|
|||||
77 |
The issue could also be caused by a filter entry in the build configuration. If the path has been excluded in your configuration, e.g.
excluded_paths: ["lib/*"]
, you can move it to the dependency path list as follows:For further information see https://scrutinizer-ci.com/docs/tools/php/php-scrutinizer/#list-dependency-paths