PluginProbe ʕ •ᴥ•ʔ
GiveWP – Donation Plugin and Fundraising Platform / 2.19.3
GiveWP – Donation Plugin and Fundraising Platform v2.19.3
4.16.2 4.16.1 4.16.0 4.15.5 4.15.4 4.15.3 4.15.2 4.15.1 4.15.0 2.3.0 2.3.1 2.3.2 2.30.0 2.31.0 2.31.1 2.32.0 2.33.0 2.33.1 2.33.2 2.33.3 2.33.4 2.33.5 2.4.0 2.4.1 2.4.2 2.4.3 2.4.4 2.4.5 2.4.6 2.4.7 2.5.0 2.5.1 2.5.10 2.5.11 2.5.12 2.5.13 2.5.2 2.5.3 2.5.4 2.5.5 2.5.6 2.5.7 2.5.8 2.5.9 2.6.0 2.6.1 2.6.2 2.6.3 2.7.0 2.7.1 2.7.2 2.7.3 2.7.4 2.7.5 2.8.0 2.8.1 2.9.0 2.9.1 2.9.2 2.9.3 2.9.4 2.9.5 2.9.6 2.9.7 3.0.0 3.0.1 3.0.2 3.0.3 3.0.4 3.1.0 3.1.1 3.1.2 3.10.0 3.11.0 3.12.0 3.12.1 3.12.2 3.12.3 3.13.0 3.14.0 3.14.1 3.14.2 3.15.0 3.15.1 3.16.0 3.16.1 3.16.2 3.16.3 3.16.4 3.16.5 3.17.0 3.17.1 3.17.2 3.18.0 3.19.0 3.19.1 3.19.2 3.19.3 3.19.4 3.2.0 3.2.1 3.2.2 3.20.0 3.21.0 3.21.1 3.22.0 3.22.1 3.22.2 3.3.0 3.3.1 3.4.0 3.4.1 3.4.2 3.5.0 3.5.1 3.6.0 3.6.1 3.6.2 3.7.0 3.8.0 3.9.0 4.0.0 4.1.0 4.1.1 4.10.0 4.10.1 4.11.0 4.12.0 4.13.0 4.13.1 4.13.2 4.14.0 4.14.1 4.14.2 4.14.3 4.14.4 4.14.5 4.14.6 4.2.0 4.2.1 4.3.0 4.3.1 4.3.2 4.4.0 4.5.0 4.6.1 4.7.0 4.7.1 4.8.0 4.8.1 4.9.0 trunk 1.9.0 2.0.0 2.0.1 2.0.2 2.0.3 2.0.4 2.0.5 2.0.6 2.0.7 2.1.0 2.1.1 2.1.2 2.1.3 2.1.4 2.1.5 2.1.6 2.1.7 2.1.8 2.10.0 2.10.1 2.10.2 2.10.3 2.10.4 2.11.0 2.11.1 2.11.2 2.11.3 2.12.0 2.12.1 2.12.2 2.12.3 2.13.0 2.13.1 2.13.2 2.13.3 2.13.4 2.14.0 2.15.0 2.16.0 2.16.1 2.17.0 2.17.1 2.17.3 2.18.0 2.18.1 2.19.1 2.19.2 2.19.3 2.19.4 2.19.5 2.19.6 2.19.7 2.19.8 2.2.0 2.2.1 2.2.2 2.2.3 2.2.4 2.2.5 2.2.6 2.20.0 2.20.1 2.20.2 2.21.0 2.21.1 2.21.2 2.21.3 2.21.4 2.22.0 2.22.1 2.22.2 2.22.3 2.23.0 2.23.1 2.23.2 2.24.0 2.24.1 2.24.2 2.25.0 2.25.1 2.25.2 2.25.3 2.26.0 2.27.0 2.27.1 2.27.2 2.27.3 2.28.0 2.29.0 2.29.1 2.29.2
give / src / Framework / Http / Response / Response.php
give / src / Framework / Http / Response Last commit date
Exceptions 4 years ago Traits 4 years ago Types 4 years ago Response.php 4 years ago ResponseFactory.php 4 years ago functions.php 4 years ago
Response.php
85 lines
1 <?php
2
3 namespace Give\Framework\Http\Response;
4
5 use ArrayObject;
6 use Give\Framework\Http\Response\Traits\ResponseTrait;
7 use Give\Framework\Support\Contracts\Arrayable;
8 use Give\Framework\Support\Contracts\Jsonable;
9 use Give\Framework\Support\Contracts\Renderable;
10 use JsonSerializable;
11 use Symfony\Component\HttpFoundation\Response as SymfonyResponse;
12
13 /**
14 * @since 2.18.0
15 */
16 class Response extends SymfonyResponse
17 {
18 use ResponseTrait;
19
20 /**
21 * Set the content on the response.
22 *
23 * @param mixed $content
24 * @return $this
25 */
26 public function setContent($content)
27 {
28 $this->original = $content;
29
30 // If the content is "JSONable" we will set the appropriate header and convert
31 // the content to JSON. This is useful when returning something like models
32 // from routes that will be automatically transformed to their JSON form.
33 if ($this->shouldBeJson($content)) {
34 $this->header('Content-Type', 'application/json');
35
36 $content = $this->morphToJson($content);
37 }
38
39 // If this content implements the "Renderable" interface then we will call the
40 // render method on the object so we will avoid any "__toString" exceptions
41 // that might be thrown and have their errors obscured by PHP's handling.
42 elseif ($content instanceof Renderable) {
43 $content = $content->render();
44 }
45
46 parent::setContent($content);
47
48 return $this;
49 }
50
51 /**
52 * Determine if the given content should be turned into JSON.
53 *
54 * @param mixed $content
55 * @return bool
56 */
57 protected function shouldBeJson($content)
58 {
59 return $content instanceof Arrayable ||
60 $content instanceof Jsonable ||
61 $content instanceof ArrayObject ||
62 $content instanceof JsonSerializable ||
63 is_array($content);
64 }
65
66 /**
67 * Morph the given content into JSON.
68 *
69 * @param mixed $content
70 * @return string
71 */
72 protected function morphToJson($content)
73 {
74 if ($content instanceof Jsonable) {
75 return $content->toJson();
76 }
77
78 if ($content instanceof Arrayable) {
79 return json_encode($content->toArray());
80 }
81
82 return json_encode($content);
83 }
84 }
85