Класс ErrorHandlerMiddleware
Обработка ошибок посредством middleware.
Перехватывает исключения и преобразует их в страницы ошибок, соответствующие HTML или типу контента, используя CakePHP ExceptionRenderer.
- Cake\Error\Middleware\ErrorHandlerMiddleware использует Cake\Core\InstanceConfigTrait
Краткое описание свойств
-
$_defaultConfigprotectedЗначения по умолчанию конфигурации.array -
$exceptionRendererprotectedОбработчик исключений.Cake\Error\ExceptionRendererInterface|string|null
Унаследованные свойства
Краткое описание методов
- __construct() publicКонструктор
- __invoke() publicОборачивание оставшихся middleware обработкой ошибок.
- getMessage() protectedГенерация сообщения журнала ошибок.
- getRenderer() protectedПолучение экземпляра обработчика.
- handleException() publicОбработка исключения и генерация ответа об ошибке
- logException() protectedРегистрация ошибки для исключения, если применимо.
Подробное описание методов
__construct()source public
__construct( string|callable|null $exceptionRenderer null , array $config [] )
Конструктор
Параметры
- string|callable|null
$exceptionRendererопционально null Обработчик или имя класса для использования, или фабричная функция. Если null, будет использован Configure::read('Error.exceptionRenderer').
- array
$configопционально [] Опции конфигурации. Если пусто, будет использован
Configure::read('Error').
__invoke()source public
__invoke( Psr\Http\Message\ServerRequestInterface $request , Psr\Http\Message\ResponseInterface $response , callable $next )
Оборачивание оставшихся middleware обработкой ошибок.
Параметры
- Psr\Http\Message\ServerRequestInterface
$request - Запрос.
- Psr\Http\Message\ResponseInterface
$response - Ответ.
- callable
$next - Обработчик для вызова следующего middleware.
Возвращает
Psr\Http\Message\ResponseInterfaceОтвет
getMessage()source protected
getMessage( Psr\Http\Message\ServerRequestInterface $request , Exception $exception )
Генерация сообщения журнала ошибок.
Параметры
- Psr\Http\Message\ServerRequestInterface
$request - Текущий запрос.
- Exception
$exception - Исключение, для которого нужно сгенерировать сообщение.
Возвращает
stringСообщение об ошибке
getRenderer()source protected
getRenderer( Exception $exception )
Получение экземпляра обработчика
Параметры
- Exception
$exception - Исключение, которое обрабатывается.
Возвращает
Cake\Error\ExceptionRendererInterfaceОбработчик исключений.
Выбрасывает
ExceptionЕсли класс обработчика не найден.
handleException()source public
handleException( Exception $exception , Psr\Http\Message\ServerRequestInterface $request , Psr\Http\Message\ResponseInterface $response )
Обработка исключения и генерация ответа об ошибке
Параметры
- Exception
$exception - Исключение для обработки.
- Psr\Http\Message\ServerRequestInterface
$request - Запрос.
- Psr\Http\Message\ResponseInterface
$response - Ответ.
Возвращает
Psr\Http\Message\ResponseInterfaceОтвет
logException()source protected
logException( Psr\Http\Message\ServerRequestInterface $request , Exception $exception )
Регистрация ошибки для исключения, если применимо.
Параметры
- Psr\Http\Message\ServerRequestInterface
$request - Текущий запрос.
- Exception
$exception - Исключение, для которого нужно зарегистрировать сообщение.
Используемые методы из Cake\Core\InstanceConfigTrait
_configDelete()source protected
_configDelete( string $key )
Удаляет отдельный ключ конфигурации.
Параметры
- string
$key - Ключ для удаления.
Выбрасывает
Cake\Core\Exception\Exceptionпри попытке перезаписи существующей конфигурации
_configRead()source protected
_configRead( string|null $key )
Чтение ключа конфигурации.
Параметры
- string|null
$key - Ключ для чтения.
Возвращает
mixed_configWrite()source protected
_configWrite( string|array $key , mixed $value , boolean|string $merge false )
Запись ключа конфигурации.
Параметры
- string|array
$key - Ключ для записи.
- mixed
$value - Значение для записи.
- boolean|string
$mergeопционально false True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи, по умолчанию false.
Выбрасывает
Cake\Core\Exception\Exceptionпри попытке перезаписи существующей конфигурации
config()source public
config( string|array|null $key null , mixed|null $value null , boolean $merge true )
Получение/установка конфигурации.
Использование
Чтение всей конфигурации:
$this->config();
Чтение определенного значения:
$this->config('key'); Чтение вложенного значения:
$this->config('some.nested.key'); Установка определенного значения:
$this->config('key', $value); Установка вложенного значения:
$this->config('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->config(['one' => 'value', 'another' => 'value']);
Устарело
3.4.0 используйте setConfig()/getConfig() вместо этого.Параметры
- string|array|null
$keyопционально null - Ключ для получения/установки, или полный массив конфигураций.
- mixed|null
$valueопционально null - Значение для установки.
- boolean
$mergeопционально true - Рекурсивное слияние или перезапись существующей конфигурации, по умолчанию true.
Возвращает
mixedЗначение конфигурации для чтения, или сам объект при операциях записи.
Выбрасывает
Cake\Core\Exception\ExceptionПри попытке установки недопустимого ключа.
configShallow()source public
configShallow( string|array $key , mixed|null $value null )
Объединение предоставленной конфигурации с существующей конфигурацией. В отличие от config(), которое выполняет рекурсивное слияние для вложенных ключей, этот метод выполняет простое слияние.
Установка определенного значения:
$this->configShallow('key', $value); Установка вложенного значения:
$this->configShallow('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->configShallow(['one' => 'value', 'another' => 'value']);
Параметры
- string|array
$key - Ключ для установки, или полный массив конфигураций.
- mixed|null
$valueопционально null - Значение для установки.
Возвращает
$this
getConfig()source public
getConfig( string|null $key null , mixed $default null )
Возвращает конфигурацию.
Использование
Чтение всей конфигурации:
$this->getConfig();
Чтение определенного значения:
$this->getConfig('key'); Чтение вложенного значения:
$this->getConfig('some.nested.key'); Чтение со значением по умолчанию:
$this->getConfig('some-key', 'default-value'); Параметры
- string|null
$keyнеобязательно null - Ключ для получения или null для всей конфигурации.
- mixed
$defaultнеобязательно null - Значение по умолчанию, если ключ не найден.
Возвращаемое значение
mixedЗначение конфигурации.
setConfig()source public
setConfig( string|array $key , mixed|null $value null , boolean $merge true )
Устанавливает конфигурацию.
Использование
Установка определенного значения:
$this->setConfig('key', $value); Установка вложенного значения:
$this->setConfig('some.nested.key', $value); Обновление нескольких настроек конфигурации одновременно:
$this->setConfig(['one' => 'value', 'another' => 'value']);
Параметры
- string|array
$key - Ключ для установки или массив настроек.
- mixed|null
$valueнеобязательно null - Значение для установки.
- boolean
$mergeнеобязательно true - Выполнять рекурсивное слияние или перезапись существующей конфигурации, по умолчанию true.
Возвращаемое значение
$this
Исключения
Cake\Core\Exception\ExceptionПри попытке установить неверный ключ.
Подробное описание свойств
$_defaultConfigsource
protected array
Значения конфигурации по умолчанию.
-
logВключить логирование исключений. -
skipLogСписок исключений, которые следует пропустить при логировании. Исключения, которые наследуются от одного из перечисленных исключений, также не будут регистрироваться. Пример:'skipLog' => ['Cake\Error\NotFoundException', 'Cake\Error\UnauthorizedException']
traceДолжны ли логи ошибок включать трассировки стека?
[
'skipLog' => [],
'log' => true,
'trace' => false,
] $exceptionRenderersource
protected Cake\Error\ExceptionRendererInterface|string|null
Обработчик исключений.
© 2005–2017 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.4/class-Cake.Error.Middleware.ErrorHandlerMiddleware.html