Fr3nch13/CakePHP Utilities

WebExceptionRenderer
in package
implements ExceptionRendererInterface

Web Exception Renderer.

Captures and handles all unhandled exceptions. Displays helpful framework errors when debug is true. When debug is false, WebExceptionRenderer will render 404 or 500 errors. If an uncaught exception is thrown and it is a type that WebExceptionHandler does not know about it will be treated as a 500 error.

Implementing application specific exception rendering

You can implement application specific exception handling by creating a subclass of WebExceptionRenderer and configure it to be the exceptionRenderer in config/error.php

Using a subclass of WebExceptionRenderer

Using a subclass of WebExceptionRenderer gives you full control over how Exceptions are rendered, you can configure your class in your config/app.php.

Table of Contents

Interfaces

ExceptionRendererInterface
Interface ExceptionRendererInterface

Properties

$controller  : Controller
Controller instance.
$error  : Throwable
The exception being handled.
$exceptionHttpCodes  : array<string, int>
Map of exceptions to http status codes.
$method  : string
The method corresponding to the Exception this object is for.
$request  : ServerRequest|null
If set, this will be request used to create the controller that will render the error.
$template  : string
Template to render for {@link \Cake\Core\Exception\CakeException}

Methods

__construct()  : mixed
Creates the controller to perform rendering on the error response.
__debugInfo()  : array<string, mixed>
Returns an array that can be used to describe the internal state of this object.
render()  : Response
Renders the response for the exception.
write()  : void
Emit the response content
_customMethod()  : Response
Render a custom error method/template.
_getController()  : Controller
Get the controller instance to handle the exception.
_message()  : string
Get error message.
_method()  : string
Get method name
_outputMessage()  : Response
Generate the response using the controller object.
_outputMessageSafe()  : Response
A safer way to render error messages, replaces all helpers, with basics and doesn't call component methods.
_shutdown()  : Response
Run the shutdown events.
_template()  : string
Get template for rendering exception info.
clearOutput()  : void
Clear output buffers so error pages display properly.
getHttpCode()  : int
Gets the appropriate http status code for exception.

Properties

$exceptionHttpCodes

Map of exceptions to http status codes.

protected array<string, int> $exceptionHttpCodes = [ // Controller exceptions \Cake\Controller\Exception\InvalidParameterException::class => 404, \Cake\Controller\Exception\MissingActionException::class => 404, // Datasource exceptions \Cake\Datasource\Paging\Exception\PageOutOfBoundsException::class => 404, \Cake\Datasource\Exception\RecordNotFoundException::class => 404, // Http exceptions \Cake\Http\Exception\MissingControllerException::class => 404, // Routing exceptions \Cake\Routing\Exception\MissingRouteException::class => 404, ]

This can be customized for users that don't want specific exceptions to throw 404 errors or want their application exceptions to be automatically converted.

Tags
psalm-var

array<class-string<\Throwable>, int>

$method

The method corresponding to the Exception this object is for.

protected string $method = ''

$template

Template to render for {@link \Cake\Core\Exception\CakeException}

protected string $template = ''

Methods

__construct()

Creates the controller to perform rendering on the error response.

public __construct(Throwable $exception[, ServerRequest|null $request = null ]) : mixed
Parameters
$exception : Throwable

Exception.

$request : ServerRequest|null = null

The request if this is set it will be used instead of creating a new one.

__debugInfo()

Returns an array that can be used to describe the internal state of this object.

public __debugInfo() : array<string, mixed>
Return values
array<string, mixed>

_customMethod()

Render a custom error method/template.

protected _customMethod(string $method, Throwable $exception) : Response
Parameters
$method : string

The method name to invoke.

$exception : Throwable

The exception to render.

Return values
Response

The response to send.

_getController()

Get the controller instance to handle the exception.

protected _getController() : Controller

Override this method in subclasses to customize the controller used. This method returns the built in ErrorController normally, or if an error is repeated a bare controller will be used.

Tags
triggers

Controller.startup $controller

Return values
Controller

_message()

Get error message.

protected _message(Throwable $exception, int $code) : string
Parameters
$exception : Throwable

Exception.

$code : int

Error code.

Return values
string

Error message

_method()

Get method name

protected _method(Throwable $exception) : string
Parameters
$exception : Throwable

Exception instance.

Return values
string

_outputMessage()

Generate the response using the controller object.

protected _outputMessage(string $template) : Response
Parameters
$template : string

The template to render.

Return values
Response

A response object that can be sent.

_outputMessageSafe()

A safer way to render error messages, replaces all helpers, with basics and doesn't call component methods.

protected _outputMessageSafe(string $template) : Response
Parameters
$template : string

The template to render.

Return values
Response

A response object that can be sent.

_shutdown()

Run the shutdown events.

protected _shutdown() : Response

Triggers the afterFilter and afterDispatch events.

Return values
Response

The response to serve.

_template()

Get template for rendering exception info.

protected _template(Throwable $exception, string $method, int $code) : string
Parameters
$exception : Throwable

Exception instance.

$method : string

Method name.

$code : int

Error code.

Return values
string

Template name

clearOutput()

Clear output buffers so error pages display properly.

protected clearOutput() : void

getHttpCode()

Gets the appropriate http status code for exception.

protected getHttpCode(Throwable $exception) : int
Parameters
$exception : Throwable

Exception.

Return values
int

A valid HTTP status code.


        
On this page

Search results