init
This commit is contained in:
61
vendor/yiisoft/yii2/web/JsonParser.php
vendored
Normal file
61
vendor/yiisoft/yii2/web/JsonParser.php
vendored
Normal file
@@ -0,0 +1,61 @@
|
||||
<?php
|
||||
/**
|
||||
* @link http://www.yiiframework.com/
|
||||
* @copyright Copyright (c) 2008 Yii Software LLC
|
||||
* @license http://www.yiiframework.com/license/
|
||||
*/
|
||||
|
||||
namespace yii\web;
|
||||
|
||||
use yii\base\InvalidParamException;
|
||||
use yii\helpers\Json;
|
||||
|
||||
/**
|
||||
* Parses a raw HTTP request using [[\yii\helpers\Json::decode()]].
|
||||
*
|
||||
* To enable parsing for JSON requests you can configure [[Request::parsers]] using this class:
|
||||
*
|
||||
* ```php
|
||||
* 'request' => [
|
||||
* 'parsers' => [
|
||||
* 'application/json' => 'yii\web\JsonParser',
|
||||
* ]
|
||||
* ]
|
||||
* ```
|
||||
*
|
||||
* @author Dan Schmidt <danschmidt5189@gmail.com>
|
||||
* @since 2.0
|
||||
*/
|
||||
class JsonParser implements RequestParserInterface
|
||||
{
|
||||
/**
|
||||
* @var bool whether to return objects in terms of associative arrays.
|
||||
*/
|
||||
public $asArray = true;
|
||||
/**
|
||||
* @var bool whether to throw a [[BadRequestHttpException]] if the body is invalid json
|
||||
*/
|
||||
public $throwException = true;
|
||||
|
||||
|
||||
/**
|
||||
* Parses a HTTP request body.
|
||||
* @param string $rawBody the raw HTTP request body.
|
||||
* @param string $contentType the content type specified for the request body.
|
||||
* @return array parameters parsed from the request body
|
||||
* @throws BadRequestHttpException if the body contains invalid json and [[throwException]] is `true`.
|
||||
*/
|
||||
public function parse($rawBody, $contentType)
|
||||
{
|
||||
try {
|
||||
$parameters = Json::decode($rawBody, $this->asArray);
|
||||
return $parameters === null ? [] : $parameters;
|
||||
} catch (InvalidParamException $e) {
|
||||
if ($this->throwException) {
|
||||
throw new BadRequestHttpException('Invalid JSON data in request body: ' . $e->getMessage());
|
||||
}
|
||||
|
||||
return [];
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user