Class ErrorHandlerMiddleware
Error handling middleware.
Traps exceptions and converts them into HTML or content-type appropriate error pages using the CakePHP ExceptionRenderer.
Properties summary
- $_config protected
array
Runtime config
- $_configInitialized protected
bool
Whether the config property has already been configured with defaults
- $_defaultConfig protected
array
Default configuration values.
- $exceptionRenderer protected
\Cake\Error\ExceptionRendererInterface|callable|string|null
Exception render.
Method Summary
- configShallow() public
Merge provided config with existing config. Unlike
config()
which does a recursive merge for nested keys, this method does a simple merge. - handleInternalError() protected
Method Detail
__construct() public
__construct(mixed $exceptionRenderer, array $config)
Constructor
Parameters
-
string|callable|null
$exceptionRenderer optional The renderer or class name to use or a callable factory. If null, Configure::read('Error.exceptionRenderer') will be used.
-
array
$config optional Configuration options to use. If empty,
Configure::read('Error')
will be used.
__invoke() public
__invoke(mixed $request, mixed $response, mixed $next)
Wrap the remaining middleware with error handling.
Parameters
-
\Psr\Http\Message\ServerRequestInterface
$request The request.
-
\Psr\Http\Message\ResponseInterface
$response The response.
-
callable
$next Callback to invoke the next middleware.
Returns
\Psr\Http\Message\ResponseInterface
A response
_configDelete() protected
_configDelete(mixed $key)
Deletes a single config key.
Parameters
-
string
$key Key to delete.
Throws
Cake\Core\Exception\Exception
if attempting to clobber existing config
_configRead() protected
_configRead(mixed $key)
Reads a config key.
Parameters
-
string|null
$key Key to read.
Returns
mixed
_configWrite() protected
_configWrite(mixed $key, mixed $value, mixed $merge)
Writes a config key.
Parameters
-
string|array
$key Key to write to.
-
mixed
$value Value to write.
-
bool|string
$merge optional True to merge recursively, 'shallow' for simple merge, false to overwrite, defaults to false.
Throws
Cake\Core\Exception\Exception
if attempting to clobber existing config
config() public
config(mixed $key, mixed $value, mixed $merge)
Gets/Sets the config.
Usage
Reading the whole config:
$this->config();
Reading a specific value:
$this->config('key');
Reading a nested value:
$this->config('some.nested.key');
Setting a specific value:
$this->config('key', $value);
Setting a nested value:
$this->config('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->config(['one' => 'value', 'another' => 'value']);
Parameters
-
string|array|null
$key optional The key to get/set, or a complete array of configs.
-
mixed|null
$value optional The value to set.
-
bool
$merge optional Whether to recursively merge or overwrite existing config, defaults to true.
Returns
mixed
Config value being read, or the object itself on write operations.
Throws
Cake\Core\Exception\Exception
When trying to set a key that is invalid.
configShallow() public
configShallow(mixed $key, mixed $value)
Merge provided config with existing config. Unlike config()
which does a recursive merge for nested keys, this method does a simple merge.
Setting a specific value:
$this->configShallow('key', $value);
Setting a nested value:
$this->configShallow('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Parameters
-
string|array
$key The key to set, or a complete array of configs.
-
mixed|null
$value optional The value to set.
Returns
$this
getConfig() public
getConfig(mixed $key, mixed $default)
Returns the config.
Usage
Reading the whole config:
$this->getConfig();
Reading a specific value:
$this->getConfig('key');
Reading a nested value:
$this->getConfig('some.nested.key');
Reading with default value:
$this->getConfig('some-key', 'default-value');
Parameters
-
string|null
$key optional The key to get or null for the whole config.
-
mixed|null
$default optional The return value when the key does not exist.
Returns
mixed|null
Configuration data at the named key or null if the key does not exist.
getConfigOrFail() public
getConfigOrFail(mixed $key)
Returns the config for this specific key.
The config value for this key must exist, it can never be null.
Parameters
-
string|null
$key The key to get.
Returns
mixed
Configuration data at the named key
Throws
InvalidArgumentException
getMessage() protected
getMessage(mixed $request, mixed $exception)
Generate the error log message.
Parameters
-
\Psr\Http\Message\ServerRequestInterface
$request The current request.
-
\Exception
$exception The exception to log a message for.
Returns
string
Error message
getMessageForException() protected
getMessageForException(mixed $exception, mixed $isPrevious)
Generate the message for the exception
Parameters
-
\Exception
$exception The exception to log a message for.
-
bool
$isPrevious optional False for original exception, true for previous
Returns
string
Error message
getRenderer() protected
getRenderer(mixed $exception, mixed $request)
Get a renderer instance
Parameters
-
\Exception
$exception The exception being rendered.
-
\Psr\Http\Message\ServerRequestInterface
$request The request.
Returns
\Cake\Error\ExceptionRendererInterface
The exception renderer.
Throws
Exception
When the renderer class cannot be found.
handleException() public
handleException(mixed $exception, mixed $request, mixed $response)
Handle an exception and generate an error response
Parameters
-
\Exception
$exception The exception to handle.
-
\Psr\Http\Message\ServerRequestInterface
$request The request.
-
\Psr\Http\Message\ResponseInterface
$response The response.
Returns
\Psr\Http\Message\ResponseInterface
A response
handleInternalError() protected
handleInternalError(mixed $response)
Parameters
-
\Psr\Http\Message\ResponseInterface
$response The response
Returns
\Psr\Http\Message\ResponseInterface
A response
logException() protected
logException(mixed $request, mixed $exception)
Log an error for the exception if applicable.
Parameters
-
\Psr\Http\Message\ServerRequestInterface
$request The current request.
-
\Exception
$exception The exception to log a message for.
setConfig() public
setConfig(mixed $key, mixed $value, mixed $merge)
Sets the config.
Usage
Setting a specific value:
$this->setConfig('key', $value);
Setting a nested value:
$this->setConfig('some.nested.key', $value);
Updating multiple config settings at the same time:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Parameters
-
string|array
$key The key to set, or a complete array of configs.
-
mixed|null
$value optional The value to set.
-
bool
$merge optional Whether to recursively merge or overwrite existing config, defaults to true.
Returns
$this
Throws
Cake\Core\Exception\Exception
When trying to set a key that is invalid.
Property Detail
$_config protected
Runtime config
Type
array
$_configInitialized protected
Whether the config property has already been configured with defaults
Type
bool
$_defaultConfig protected
Default configuration values.
-
log
Enable logging of exceptions. -
skipLog
List of exceptions to skip logging. Exceptions that extend one of the listed exceptions will also not be logged. Example:'skipLog' => ['Cake\Error\NotFoundException', 'Cake\Error\UnauthorizedException']
-
trace
Should error logs include stack traces?
Type
array
$exceptionRenderer protected
Exception render.
Type
\Cake\Error\ExceptionRendererInterface|callable|string|null
© 2005–present The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
https://api.cakephp.org/3.9/class-Cake.Error.Middleware.ErrorHandlerMiddleware.html