111
This commit is contained in:
@@ -24,12 +24,12 @@ class ExceptionHandlerDispatcher implements ExceptionHandlerInterface
|
|||||||
{
|
{
|
||||||
if ($exception->getCode() == 404) {
|
if ($exception->getCode() == 404) {
|
||||||
return $response->withBody(new Stream($exception->getMessage()))
|
return $response->withBody(new Stream($exception->getMessage()))
|
||||||
->withHeader('Content-Type', 'text/html')
|
->withContentType(Message\Response::CONTENT_TYPE_HTML)
|
||||||
->withStatus(404);
|
->withStatus(404);
|
||||||
}
|
}
|
||||||
$code = $exception->getCode() == 0 ? 500 : $exception->getCode();
|
$code = $exception->getCode() == 0 ? 500 : $exception->getCode();
|
||||||
return $response->withBody(new Stream(jTraceEx($exception, null, true)))
|
return $response->withBody(new Stream(jTraceEx($exception, null, true)))
|
||||||
->withHeader('Content-Type', 'text/html')
|
->withContentType(Message\Response::CONTENT_TYPE_HTML)
|
||||||
->withStatus($code);
|
->withStatus($code);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -10,73 +10,94 @@ use Psr\Http\Message\ResponseInterface;
|
|||||||
*/
|
*/
|
||||||
class Response implements ResponseInterface, \Server\ResponseInterface
|
class Response implements ResponseInterface, \Server\ResponseInterface
|
||||||
{
|
{
|
||||||
use Message;
|
use Message;
|
||||||
|
|
||||||
public int $statusCode = 200;
|
public int $statusCode = 200;
|
||||||
|
|
||||||
|
|
||||||
public string $reasonPhrase = '';
|
public string $reasonPhrase = '';
|
||||||
|
|
||||||
|
const CONTENT_TYPE_JSON = 'application/json;charset=utf-8';
|
||||||
|
const CONTENT_TYPE_HTML = 'text/html;charset=utf-8';
|
||||||
|
const CONTENT_TYPE_STREAM = 'octet-stream';
|
||||||
|
const CONTENT_TYPE_XML = 'application/xml;charset=utf-8';
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return int
|
* @param string $type
|
||||||
*/
|
* @return $this
|
||||||
public function getStatusCode(): int
|
*/
|
||||||
{
|
public function withContentType(string $type): static
|
||||||
// TODO: Implement getStatusCode() method.
|
{
|
||||||
return $this->statusCode;
|
if (!in_array($type, [
|
||||||
}
|
Response::CONTENT_TYPE_HTML, Response::CONTENT_TYPE_JSON,
|
||||||
|
Response::CONTENT_TYPE_STREAM, Response::CONTENT_TYPE_XML
|
||||||
|
])) {
|
||||||
|
throw new \Exception('Wrong content type.');
|
||||||
|
}
|
||||||
|
return $this->withHeader('Content-Type', $type);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* @param int $code
|
/**
|
||||||
* @param string $reasonPhrase
|
* @return int
|
||||||
* @return static
|
*/
|
||||||
*/
|
public function getStatusCode(): int
|
||||||
public function withStatus($code, $reasonPhrase = ''): static
|
{
|
||||||
{
|
// TODO: Implement getStatusCode() method.
|
||||||
|
return $this->statusCode;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @param int $code
|
||||||
|
* @param string $reasonPhrase
|
||||||
|
* @return static
|
||||||
|
*/
|
||||||
|
public function withStatus($code, $reasonPhrase = ''): static
|
||||||
|
{
|
||||||
$this->statusCode = $code;
|
$this->statusCode = $code;
|
||||||
$this->reasonPhrase = $reasonPhrase;
|
$this->reasonPhrase = $reasonPhrase;
|
||||||
return $this;
|
return $this;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @return string
|
* @return string
|
||||||
*/
|
*/
|
||||||
public function getReasonPhrase(): string
|
public function getReasonPhrase(): string
|
||||||
{
|
{
|
||||||
// TODO: Implement getReasonPhrase() method.
|
// TODO: Implement getReasonPhrase() method.
|
||||||
return $this->reasonPhrase;
|
return $this->reasonPhrase;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $value
|
* @param $value
|
||||||
* @return ResponseInterface
|
* @return ResponseInterface
|
||||||
*/
|
*/
|
||||||
public function withAccessControlAllowHeaders($value): ResponseInterface
|
public function withAccessControlAllowHeaders($value): ResponseInterface
|
||||||
{
|
{
|
||||||
return $this->withHeader('Access-Control-Allow-Headers', $value);
|
return $this->withHeader('Access-Control-Allow-Headers', $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $value
|
* @param $value
|
||||||
* @return ResponseInterface
|
* @return ResponseInterface
|
||||||
*/
|
*/
|
||||||
public function withAccessControlRequestMethod($value): ResponseInterface
|
public function withAccessControlRequestMethod($value): ResponseInterface
|
||||||
{
|
{
|
||||||
return $this->withHeader('Access-Control-Request-Method', $value);
|
return $this->withHeader('Access-Control-Request-Method', $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @param $value
|
* @param $value
|
||||||
* @return ResponseInterface
|
* @return ResponseInterface
|
||||||
*/
|
*/
|
||||||
public function withAccessControlAllowOrigin($value): ResponseInterface
|
public function withAccessControlAllowOrigin($value): ResponseInterface
|
||||||
{
|
{
|
||||||
return $this->withHeader('Access-Control-Allow-Origin', $value);
|
return $this->withHeader('Access-Control-Allow-Origin', $value);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user