CakePHP
  • Documentation
    • Book
    • API
    • Videos
    • Reporting Security Issues
    • Privacy Policy
    • Logos & Trademarks
  • Business Solutions
  • Swag
  • Road Trip
  • Team
  • Community
    • Community
    • Get Involved
    • Issues (Github)
    • Bakery
    • Featured Resources
    • Training
    • Meetups
    • My CakePHP
    • CakeFest
    • Newsletter
    • Linkedin
    • YouTube
    • Facebook
    • Twitter
    • Mastodon
    • Help & Support
    • Forum
    • Stack Overflow
    • IRC
    • Slack
    • Paid Support
CakePHP

C CakePHP 3.7 Red Velvet API

  • Project:
    • CakePHP
      • CakePHP
      • Authentication
      • Authorization
      • Chronos
      • Elastic Search
      • Queue
  • Version:
    • 3.7
      • 5.2
      • 5.1
      • 5.0
      • 4.6
      • 4.5
      • 4.4
      • 4.3
      • 4.2
      • 4.1
      • 4.0
      • 3.10
      • 3.9
      • 3.8
      • 3.7
      • 3.6
      • 3.5
      • 3.4
      • 3.3
      • 3.2
      • 3.1
      • 3.0
      • 2.10
      • 2.9
      • 2.8
      • 2.7
      • 2.6
      • 2.5
      • 2.4
      • 2.3
      • 2.2
      • 2.1
      • 2.0
      • 1.3
      • 1.2

Namespaces

  • Global
  • Cake
    • Auth
    • Cache
    • Collection
    • Command
    • Console
    • Controller
    • Core
    • Database
    • Datasource
    • Error
      • Middleware
    • Event
    • Filesystem
    • Form
    • Http
    • I18n
    • Log
    • Mailer
    • Network
    • ORM
    • Routing
    • Shell
    • TestSuite
    • Utility
    • Validation
    • View

Class ErrorHandlerMiddleware

Error handling middleware.

Traps exceptions and converts them into HTML or content-type appropriate error pages using the CakePHP ExceptionRenderer.

Namespace: Cake\Error\Middleware

Property 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

  • __construct() public

    Constructor

  • __invoke() public

    Wrap the remaining middleware with error handling.

  • _configDelete() protected

    Deletes a single config key.

  • _configRead() protected

    Reads a config key.

  • _configWrite() protected

    Writes a config key.

  • config() public deprecated

    Gets/Sets the config.

  • configShallow() public

    Merge provided config with existing config. Unlike config() which does a recursive merge for nested keys, this method does a simple merge.

  • getConfig() public

    Returns the config.

  • getMessage() protected

    Generate the error log message.

  • getMessageForException() protected

    Generate the message for the exception

  • getRenderer() protected

    Get a renderer instance

  • handleException() public

    Handle an exception and generate an error response

  • handleInternalError() protected
  • logException() protected

    Log an error for the exception if applicable.

  • setConfig() public

    Sets the config.

Method Detail

__construct() ¶ public

__construct(string|callable|null $exceptionRenderer = null, 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(Psr\Http\Message\ServerRequestInterface $request, Psr\Http\Message\ResponseInterface $response, callable $next): Psr\Http\Message\ResponseInterface

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(string $key): void

Deletes a single config key.

Parameters
string $key

Key to delete.

Returns
void
Throws
Cake\Core\Exception\Exception
if attempting to clobber existing config

_configRead() ¶ protected

_configRead(string|null $key): mixed

Reads a config key.

Parameters
string|null $key

Key to read.

Returns
mixed

_configWrite() ¶ protected

_configWrite(string|array $key, mixed $value, bool|string $merge = false): void

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.

Returns
void
Throws
Cake\Core\Exception\Exception
if attempting to clobber existing config

config() ¶ public

config(string|array|null $key = null, mixed|null $value = null, bool $merge = true): mixed

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(string|array $key, mixed|null $value = null): $this

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(string|null $key = null, mixed $default = null): mixed

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 $default optional

The return value when the key does not exist.

Returns
mixed

Config value being read.

getMessage() ¶ protected

getMessage(Psr\Http\Message\ServerRequestInterface $request, Exception $exception): string

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(Exception $exception, bool $isPrevious = false): string

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(Exception $exception, Psr\Http\Message\ServerRequestInterface $request): Cake\Error\ExceptionRendererInterface

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(Exception $exception, Psr\Http\Message\ServerRequestInterface $request, Psr\Http\Message\ResponseInterface $response): Psr\Http\Message\ResponseInterface

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(Psr\Http\Message\ResponseInterface $response): Psr\Http\Message\ResponseInterface
Parameters
Psr\Http\Message\ResponseInterface $response

The response

Returns
Psr\Http\Message\ResponseInterface

A response

logException() ¶ protected

logException(Psr\Http\Message\ServerRequestInterface $request, Exception $exception): void

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.

Returns
void

setConfig() ¶ public

setConfig(string|array $key, mixed|null $value = null, bool $merge = true): $this

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
OpenHub
Pingping
Linode
  • Business Solutions
  • Showcase
  • Documentation
  • Book
  • API
  • Videos
  • Reporting Security Issues
  • Privacy Policy
  • Logos & Trademarks
  • Community
  • Get Involved
  • Issues (Github)
  • Bakery
  • Featured Resources
  • Training
  • Meetups
  • My CakePHP
  • CakeFest
  • Newsletter
  • Linkedin
  • YouTube
  • Facebook
  • Twitter
  • Mastodon
  • Help & Support
  • Forum
  • Stack Overflow
  • IRC
  • Slack
  • Paid Support

Generated using CakePHP API Docs