为了账号安全,请及时绑定邮箱和手机立即绑定

JsonResponse.php

标签:
PHP

<?php

 

namespace Illuminate\Http;

 

use JsonSerializable;

use InvalidArgumentException;

use Illuminate\Contracts\Support\Jsonable;

use Illuminate\Contracts\Support\Arrayable;

use Symfony\Component\HttpFoundation\JsonResponse as BaseJsonResponse;

 

class JsonResponse extends BaseJsonResponse

{// a json response  extends base Json response

    use ResponseTrait;// use Response Trait

   // a trait

 

    /**

     * The json encoding options.

     *

     * @var int

     */

    protected $jsonOptions;// The json encoding options

 

    /**

     * Constructor.

     *

     * @param  mixed  $data

     * @param  int    $status

     * @param  array  $headers

     * @param  int    $options

     */

    public function __construct($data = null, $status = 200, $headers = [], $options = 0)

    {

        $this->jsonOptions = $options;

 

        parent::__construct($data, $status, $headers);

    }// a constructor about instance of the response

   // more type response

 

    /**

     * Get the json_decoded data from the response.

     *

     * @param  bool  $assoc

     * @param  int   $depth

     * @return mixed

     */

    public function getData($assoc = false, $depth = 512)

    {

        return json_decode($this->data, $assoc, $depth);// a json decode method

    }// Get the json_decoded data from the response.

 

    /**

     * {@inheritdoc}

     */

    public function setData($data = [])

    {

        if ($data instanceof Arrayable) {

            $this->data = json_encode($data->toArray(), $this->jsonOptions);// array

        } elseif ($data instanceof Jsonable) {

            $this->data = $data->toJson($this->jsonOptions);// to json

        } elseif ($data instanceof JsonSerializable) {

            $this->data = json_encode($data->jsonSerialize(), $this->jsonOptions);// to serialize

        } else {

            $this->data = json_encode($data, $this->jsonOptions);

        }

 

        if (JSON_ERROR_NONE !== json_last_error()) {

            throw new InvalidArgumentException(json_last_error_msg());

        }// JSON_ERROR_NONE

 

        return $this->update();

    }// set Data inert into the

 

    /**

     * Get the JSON encoding options.

     *

     * @return int

     */

    public function getJsonOptions()

    {

        return $this->jsonOptions;

    }// get Json Options

 

    /**

     * Set the JSON encoding options.

     *

     * @param  int  $options

     * @return mixed

     */

    public function setJsonOptions($options)

    {

        $this->jsonOptions = $options;// set the options

 

        return $this->setData($this->getData());// and set Data

    }// set Json Options

}

点击查看更多内容
TA 点赞

若觉得本文不错,就分享一下吧!

评论

作者其他优质文章

正在加载中
  • 推荐
  • 评论
  • 收藏
  • 共同学习,写下你的评论
感谢您的支持,我会继续努力的~
扫码打赏,你说多少就多少
赞赏金额会直接到老师账户
支付方式
打开微信扫一扫,即可进行扫码打赏哦
今天注册有机会得

100积分直接送

付费专栏免费学

大额优惠券免费领

立即参与 放弃机会
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号

举报

0/150
提交
取消