![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /home/corals/mets.corals.io/wp-content/plugins/give/src/Framework/Http/Response/ |
<?php namespace Give\Framework\Http\Response; use ArrayObject; use Give\Framework\Http\Response\Traits\ResponseTrait; use Give\Framework\Support\Contracts\Arrayable; use Give\Framework\Support\Contracts\Jsonable; use Give\Framework\Support\Contracts\Renderable; use JsonSerializable; use Symfony\Component\HttpFoundation\Response as SymfonyResponse; /** * @since 2.18.0 */ class Response extends SymfonyResponse { use ResponseTrait; /** * Set the content on the response. * * @param mixed $content * @return $this */ public function setContent($content) { $this->original = $content; // If the content is "JSONable" we will set the appropriate header and convert // the content to JSON. This is useful when returning something like models // from routes that will be automatically transformed to their JSON form. if ($this->shouldBeJson($content)) { $this->header('Content-Type', 'application/json'); $content = $this->morphToJson($content); } // If this content implements the "Renderable" interface then we will call the // render method on the object so we will avoid any "__toString" exceptions // that might be thrown and have their errors obscured by PHP's handling. elseif ($content instanceof Renderable) { $content = $content->render(); } parent::setContent($content); return $this; } /** * Determine if the given content should be turned into JSON. * * @param mixed $content * @return bool */ protected function shouldBeJson($content) { return $content instanceof Arrayable || $content instanceof Jsonable || $content instanceof ArrayObject || $content instanceof JsonSerializable || is_array($content); } /** * Morph the given content into JSON. * * @param mixed $content * @return string */ protected function morphToJson($content) { if ($content instanceof Jsonable) { return $content->toJson(); } if ($content instanceof Arrayable) { return json_encode($content->toArray()); } return json_encode($content); } }