0 follower

Final Class Yiisoft\ErrorHandler\ThrowableResponseFactory

InheritanceYiisoft\ErrorHandler\ThrowableResponseFactory
ImplementsYiisoft\ErrorHandler\ThrowableResponseFactoryInterface

ThrowableResponseFactory produces a response with rendered Throwable object.

Method Details

Hide inherited methods

__construct() public method

public mixed __construct ( \Psr\Http\Message\ResponseFactoryInterface $responseFactory, Yiisoft\ErrorHandler\ErrorHandler $errorHandler, Yiisoft\ErrorHandler\RendererProvider\RendererProviderInterface $rendererProvider, Yiisoft\ErrorHandler\HeadersProvider|null $headersProvider null )
$responseFactory \Psr\Http\Message\ResponseFactoryInterface
$errorHandler Yiisoft\ErrorHandler\ErrorHandler
$rendererProvider Yiisoft\ErrorHandler\RendererProvider\RendererProviderInterface
$headersProvider Yiisoft\ErrorHandler\HeadersProvider|null

                public function __construct(
    private readonly ResponseFactoryInterface $responseFactory,
    private readonly ErrorHandler $errorHandler,
    private readonly RendererProviderInterface $rendererProvider,
    ?HeadersProvider $headersProvider = null,
) {
    $this->headersProvider = $headersProvider ?? new HeadersProvider();
}

            
create() public method

public \Psr\Http\Message\ResponseInterface create ( Throwable $throwable, \Psr\Http\Message\ServerRequestInterface $request )
$throwable Throwable
$request \Psr\Http\Message\ServerRequestInterface

                public function create(Throwable $throwable, ServerRequestInterface $request): ResponseInterface
{
    $renderer = $this->rendererProvider->get($request);
    $response = $this->responseFactory->createResponse(Status::INTERNAL_SERVER_ERROR);
    foreach ($this->headersProvider->getAll() as $name => $value) {
        $response = $response->withHeader($name, $value);
    }
    return $this->errorHandler
        ->handle($throwable, $renderer, $request)
        ->addToResponse($response);
}