Spec-Zone.ru › CakePHP 4.4

Класс ExceptionTrap

Точка входа в обработку исключений CakePHP.

Используя метод register(), вы можете подключить ExceptionTrap к обработчику исключений по умолчанию PHP и зарегистрировать обработчик завершения для обработки фатальных ошибок.

Когда исключения перехватываются, срабатывает событие Exception.beforeRender. Затем исключения регистрируются (если включено) и, наконец, «отображаются» с использованием определённого рендерера.

Остановка события Exception.beforeRender не имеет эффекта, так как нам всегда нужно отобразить ответ на исключение, и пользовательские рендеры должны использоваться, если вы хотите заменить или пропустить отображение исключения.

Если не определён, рендерер исключений будет выбран на основе текущего SAPI (CLI или Web).

Пространство имён: Cake\Error

Краткое описание свойств

  • $_config protected
    array<string, mixed>

    Конфигурация выполнения

  • $_configInitialized protected
    bool

    Указывает, была ли конфигурация уже настроена с помощью значений по умолчанию

  • $_defaultConfig protected
    array<string, mixed>

    Параметры конфигурации. Обычно они определяются в файле config/app.php

  • $_eventClass protected
    string

    Имя класса по умолчанию для новых объектов событий.

  • $_eventManager protected
    Cake\Event\EventManagerInterface|null

    Экземпляр Cake\Event\EventManager, используемый этим объектом для отправки внутренних событий.

  • $callbacks protected
    arrayClosure>

    Список обработчиков обратных вызовов.

  • $disabled protected
    bool

    Отслеживает, был ли этот обработчик исключений удалён из глобального обработчика.

  • $registeredTrap protected static
    Cake\Error\ExceptionTrap|null

    Текущий зарегистрированный глобальный обработчик исключений

Краткое описание методов

  • __construct() public

    Конструктор

  • _configDelete() protected

    Удаляет отдельный ключ конфигурации.

  • _configRead() protected

    Считывает ключ конфигурации.

  • _configWrite() protected

    Записывает ключ конфигурации.

  • chooseRenderer() protected

    Выбор обработчика исключений на основе конфигурации или SAPI

  • configShallow() public

    Объединяет предоставленную конфигурацию с существующей. В отличие от config(), который выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.

  • dispatchEvent() public

    Обёртка для создания и отправки событий.

  • getConfig() public

    Возвращает конфигурацию.

  • getConfigOrFail() public

    Возвращает конфигурацию для указанного ключа.

  • getEventManager() public

    Возвращает экземпляр менеджера событий Cake\Event\EventManager для этого объекта.

  • handleException() public

    Обработка необработанных исключений.

  • handleFatalError() public

    Отображение/Ведение лога критической ошибки.

  • handleShutdown() public

    Обработчик завершения работы

  • increaseMemoryLimit() public

    Увеличивает значение ini PHP "memory_limit" на указанную величину в килобайтах

  • instance() public static

    Получить зарегистрированный глобальный экземпляр, если он установлен.

  • logException() public

    Ведение лога исключения.

  • logInternalError() public

    Вызвать ошибку, возникшую во время обработки исключения.

  • logger() public

    Получить экземпляр регистратора.

  • register() public

    Присоединить этот ExceptionTrap к обработчику исключений по умолчанию PHP.

  • renderer() public

    Получить экземпляр обработчика.

  • setConfig() public

    Устанавливает конфигурацию.

  • setEventManager() public

    Возвращает экземпляр Cake\Event\EventManagerInterface для этого объекта.

  • unregister() public

    Удалить этот экземпляр из одиночки

Подробное описание методов

__construct() public

__construct(array<string, mixed> $options = [])

Конструктор

Параметры

array<string, mixed> $options необязательный

Массив опций. См. $_defaultConfig.

_configDelete() protected

_configDelete(string $key): void

Удаляет один ключ конфигурации.

Параметры

string $key

Ключ для удаления.

Возвращает

void

Исключения

Cake\Core\Exception\CakeException
при попытке перезаписи существующей конфигурации

_configRead() protected

_configRead(string|null $key): mixed

Читает ключ конфигурации.

Параметры

string|null $key

Ключ для чтения.

Возвращает

mixed

_configWrite() protected

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

Записывает ключ конфигурации.

Параметры

array<string, mixed>|string $key

Ключ для записи.

mixed $value

Значение для записи.

string|bool $merge необязательный

True для рекурсивного слияния, 'shallow' для простого слияния, false для перезаписи. По умолчанию false.

Возвращает

void

Исключения

Cake\Core\Exception\CakeException
при попытке перезаписи существующей конфигурации

chooseRenderer() protected

chooseRenderer(): class-stringCake\Error\ExceptionRendererInterface>

Выбор обработчика исключений на основе конфигурации или SAPI

Возвращает

class-stringCake\Error\ExceptionRendererInterface>

configShallow() public

configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this

Объединяет предоставленную конфигурацию с существующей. В отличие от config(), которая выполняет рекурсивное объединение для вложенных ключей, этот метод выполняет простое объединение.

Установка конкретного значения:

$this->configShallow('key', $value);

Установка вложенного значения:

$this->configShallow('some.nested.key', $value);

Обновление нескольких настроек конфигурации одновременно:

$this->configShallow(['one' => 'value', 'another' => 'value']);

Параметры

array<string, mixed>|string $key

Ключ для установки или полный массив конфигураций.

mixed|null $value необязательный

Значение для установки.

Возвращает

$this

dispatchEvent() public

dispatchEvent(string $name, array|null $data = null, object|null $subject = null): Cake\Event\EventInterface

Оборачивание для создания и отправки событий.

Возвращает отправленное событие.

Параметры

string $name

Имя события.

array|null $data необязательный

Любое значение, которое вы хотите передать вместе с этим событием, чтобы его могли прочитать слушатели.

object|null $subject необязательный

Объект, к которому относится это событие ($this по умолчанию).

Возвращает

Cake\Event\EventInterface

getConfig() public

getConfig(string|null $key = null, mixed $default = null): mixed

Возвращает конфигурацию.

Использование

Чтение всей конфигурации:

$this->getConfig();

Чтение определенного значения:

$this->getConfig('key');

Чтение вложенного значения:

$this->getConfig('some.nested.key');

Чтение со значением по умолчанию:

$this->getConfig('some-key', 'default-value');

Параметры

string|null $key необязательный

Ключ для получения или null для всей конфигурации.

mixed $default необязательный

Значение возврата, когда ключ не существует.

Возвращает

mixed

getConfigOrFail() public

getConfigOrFail(string $key): mixed

Возвращает конфигурацию для указанного ключа.

Значение конфигурации для этого ключа должно существовать, оно никогда не может быть null.

Параметры

string $key

Ключ для получения.

Возвращает

mixed

Исключения

InvalidArgumentException

getEventManager() public

getEventManager(): Cake\Event\EventManagerInterface

Возвращает экземпляр менеджера Cake\Event\EventManager для этого объекта.

Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов к событиям объекта, или создавать собственные события и запускать их по своему усмотрению.

Возвращает

Cake\Event\EventManagerInterface

handleException() public

handleException(Throwable $exception): void

Обработка необработанных исключений.

Использует шаблонный метод, предоставленный подклассами, для отображения ошибок соответствующим образом в среде.

Параметры

Throwable $exception

Экземпляр исключения.

Возвращает

void

Исключения

Exception
Когда класс обработчика не найден

См. также

https://secure.php.net/manual/en/function.set-exception-handler.php

handleFatalError() public

handleFatalError(int $code, string $description, string $file, int $line): void

Отображение/регистрация критической ошибки.

Параметры

int $code

Код ошибки

string $description

Описание ошибки

string $file

Файл, в котором произошла ошибка

int $line

Строка, которая вызвала ошибку

Возвращает

void

handleShutdown() public

handleShutdown(): void

Обработчик завершения

Преобразование критических ошибок в исключения, которые мы можем отобразить.

Возвращает

void

increaseMemoryLimit() public

increaseMemoryLimit(int $additionalKb): void

Увеличивает настройку PHP "memory_limit" на указанную величину в килобайтах

Параметры

int $additionalKb

Число в килобайтах

Возвращает

void

instance() public static

instance(): Cake\Error\ExceptionTrap|null

Получение зарегистрированного глобального экземпляра, если он установлен.

Помните, что глобальное состояние, содержащееся здесь, изменяемое, и возвращаемый этим методом объект может быть устаревшим.

Возвращает

Cake\Error\ExceptionTrap|null

logException() public

logException(Throwable $exception, Psr\Http\Message\ServerRequestInterface|null $request = null): void

Регистрация исключения.

В основном, публичная функция для обеспечения согласованности между глобальной обработкой исключений и ErrorHandlerMiddleware. Этот метод применит фильтр skipLog, пропуская регистрацию, если исключение не должно регистрироваться.

После попытки регистрации срабатывает событие Exception.beforeRender.

Параметры

Throwable $exception

Исключение для регистрации

Psr\Http\Message\ServerRequestInterface|null $request необязательный

Необязательный запрос

Возвращает

void

logInternalError() public

logInternalError(Throwable $exception): void

Вызывает ошибку, возникшую при отображении исключения.

Вызывая E_USER_ERROR, мы можем попасть в стандартную обработку исключений, которая зарегистрирует неудачу отображения и, надеюсь, отобразит страницу с ошибкой.

Параметры

Throwable $exception

Исключение для регистрации

Возвращает

void

logger() public

logger(): Cake\Error\ErrorLoggerInterface

Получение экземпляра логгера.

Возвращает

Cake\Error\ErrorLoggerInterface

register() public

register(): void

Присоединить этот ExceptionTrap к обработчику исключений по умолчанию PHP.

Это заменит существующий обработчик исключений, и предыдущий обработчик исключений будет удалён.

Возвращает

void

renderer() public

renderer(Throwable $exception, Psr\Http\Message\ServerRequestInterface|null $request = null): Cake\Error\ExceptionRendererInterface

Получить экземпляр рендерера.

Параметры

Throwable $exception

Исключение для рендеринга

Psr\Http\Message\ServerRequestInterface|null $request optional

Запрос, если доступен.

Возвращает

Cake\Error\ExceptionRendererInterface

setConfig() public

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

Устанавливает конфигурацию.

Использование

Установка конкретного значения:

$this->setConfig('key', $value);

Установка вложенного значения:

$this->setConfig('some.nested.key', $value);

Обновление нескольких параметров конфигурации одновременно:

$this->setConfig(['one' => 'value', 'another' => 'value']);

Параметры

array<string, mixed>|string $key

Ключ для установки или массив всей конфигурации.

mixed|null $value optional

Значение для установки.

bool $merge optional

Необходимо ли рекурсивное слияние или перезапись существующей конфигурации, по умолчанию true.

Возвращает

$this

Исключения

Cake\Core\Exception\CakeException
При попытке установить недопустимый ключ.

setEventManager() public

setEventManager(Cake\Event\EventManagerInterface $eventManager): $this

Возвращает экземпляр Cake\Event\EventManagerInterface для этого объекта.

Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов для событий объекта, или создавать свои собственные события и вызывать их по своему усмотрению.

Параметры

Cake\Event\EventManagerInterface $eventManager

eventManager для установки

Возвращает

$this

unregister() public

unregister(): void

Удалить этот экземпляр из синглтона

Если этот экземпляр не является текущим зарегистрированным синглтоном, ничего не происходит.

Возвращает

void

Подробное описание свойств

$_config protected

Конфигурация во время выполнения

Тип

array<string, mixed>

$_configInitialized protected

Установлена ли конфигурация свойства значениями по умолчанию

Тип

bool

$_defaultConfig protected

Параметры конфигурации. Обычно они определяются в файле config/app.php

  • exceptionRenderer - строка - Класс, отвечающий за рендеринг необработанных исключений. Выбранный класс будет использоваться как для командной строки, так и для веб-среды. Если вам нужны разные классы для командной строки и веб-среды, вам также потребуется написать условную логику. Обычно пользовательские рендеры хранятся в src/Error. Ваш рендер исключений должен реализовывать метод render() и возвращать либо строку, либо Http\Response.
  • log Установите в false, чтобы отключить логирование.
  • logger - строка - Имя класса логгера ошибок, который нужно использовать.
  • trace - логический тип - Включать ли трассировки в зарегистрированные исключения.
  • skipLog - массив - Список исключений, которые нужно пропустить для логирования. Исключения, которые расширяют один из перечисленных исключений, также не будут регистрироваться. Например:
    'skipLog' => ['Cake\Http\Exception\NotFoundException', 'Cake\Http\Exception\UnauthorizedException']

    Этот параметр передаётся в настроенный logger

  • extraFatalErrorMemory - целое число - Количество мегабайт, на которое необходимо увеличить предел памяти при возникновении фатальной ошибки. Это позволяет увеличить отступ, чтобы завершить логирование или обработку ошибок.
  • stderr Используется в консольных средах, чтобы рендеры могли получить доступ к текущему потоку вывода консоли.

Тип

array<string, mixed>

$_eventClass protected

Имя класса по умолчанию для новых объектов события.

Тип

string

$_eventManager protected

Экземпляр Cake\Event\EventManager, используемый этим объектом для передачи внутренних событий.

Тип

Cake\Event\EventManagerInterface|null

$callbacks protected

Список обратных вызовов для обработки.

Обратные вызовы вызываются для каждой ошибки, которая обрабатывается. Обратные вызовы вызываются в порядке их добавления.

Тип

arrayClosure>

$disabled protected

Отслеживать, был ли этот ловушку удалён из глобального обработчика.

Тип

bool

$registeredTrap protected static

Текущий зарегистрированный глобальный обработчик исключений

Это наилучшая попытка, так как мы не знаем, зарегистрирован ли/когда ещё один обработчик исключений.

Тип

Cake\Error\ExceptionTrap|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/4.4/class-Cake.Error.ExceptionTrap.html

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API