<?php namespace Illuminate\Http; use Exception; use ArrayObject; use JsonSerializable; use Illuminate\Contracts\Support\Jsonable; use Illuminate\Contracts\Support\Renderable; use Symfony\Component\HttpFoundation\Response as BaseResponse; // namespace about be use class Response extends BaseResponse {// a response about extends use ResponseTrait;// use a trait /** * The original content of the response. * * @var mixed */ public $original;// The original content of the response. /** * The exception that triggered the error response (if applicable). * * @var \Exception */ public $exception;// The exception that triggered the error response (if applicable) /** * Set the content on the response. * * @param mixed $content * @return $this */ public function setContent($content) {// Set the content on the response. $this->original = $content;// this 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 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 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(); }// 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 obsured by PHP's handling. return parent::setContent($content);// a parent:: setContent } /** * Morph the given content into JSON. * * @param mixed $content * @return string */ protected function morphToJson($content) { if ($content instanceof Jsonable) { return $content->toJson(); }//content return json_encode($content);//json_encode(content) }//Morph the given content into JSON /** * Determine if the given content should be turned into JSON. * * @param mixed $content * @return bool */ protected function shouldBeJson($content) {//Determine if the given content should be turned into JSON. return $content instanceof Jsonable || $content instanceof ArrayObject || $content instanceof JsonSerializable || is_array($content); }// if can be morph to json ,then morph it. /** * Get the original response content. * * @return mixed */ public function getOriginalContent() { return $this->original;// big get }//Get the original response content /** * Set the exception to attach to the response. * * @param \Exception $e * @return $this */ public function withException(Exception $e) { $this->exception = $e;// set exception return $this;// and return it self }//Set the exception to attach to the response }
[李景山php]每天laravel-20161023|Reponse.php
原创
©著作权归作者所有:来自51CTO博客作者lijingsan1的原创作品,请联系作者获取转载授权,否则将追究法律责任
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
相关文章