ErrorHandler
class ErrorHandler
Общий обработчик ошибок для движка PHP.
Предоставляет пять битовых полей, контролирующих обработку ошибок: - thrownErrors: ошибки, сбрасываемые как \ErrorException - loggedErrors: зарегистрированные ошибки, когда не подавлены оператором @ - scopedErrors: ошибки, сбрасываемые или регистрируемые с их локальным контекстом - tracedErrors: ошибки, регистрируемые со своим стеком вызовов, только один раз для повторяющихся ошибок - screamedErrors: ошибки, которые никогда не подавляются оператором @
Каждый уровень ошибок может быть зарегистрирован объектом логгера PSR-3. Режим «screaming» применяется только к регистрации. Сбрасывание имеет приоритет перед регистрацией. Неперехваченные исключения регистрируются как EERROR. Уровни EDEPRECATED и EUSERDEPRECATED никогда не сбрасываются. Уровни ERECOVERABLEERROR и EUSERERROR всегда сбрасываются. Неперехватываемые ошибки, которые могут быть обнаружены во время завершения работы, регистрируются, если поле «screaming» разрешено. Поскольку ошибки влияют на производительность, повторяющиеся ошибки регистрируются все, чтобы разработчик мог увидеть их и оценить важность их исправления по сравнению с другими ошибками того же уровня.
Методы
| static ErrorHandler | register(ErrorHandler $handler = null, bool $replace = true) Регистрирует обработчик ошибок. | |
| __construct(BufferingLogger $bootstrappingLogger = null) | ||
| setDefaultLogger(LoggerInterface $logger, array|int $levels = null, bool $replace = false) Устанавливает логгер для уровней ошибок, которым он не был назначен. | ||
| array | setLoggers(array $loggers) Устанавливает логгер для каждого уровня ошибок. | |
| callable|null | setExceptionHandler(callable $handler = null) Устанавливает пользовательский обработчик исключений. | |
| int | throwAt(int $levels, bool $replace = false) Устанавливает уровни ошибок PHP, которые сбрасывают исключение при возникновении ошибки PHP. | |
| int | scopeAt(int $levels, bool $replace = false) Устанавливает уровни ошибок PHP, для которых сохраняются локальные переменные. | |
| int | traceAt(int $levels, bool $replace = false) Устанавливает уровни ошибок PHP, для которых сохраняется стек вызовов. | |
| int | screamAt(int $levels, bool $replace = false) Устанавливает уровни ошибок, где оператор @ игнорируется. | |
| bool | handleError($type, $message, $file, $line, array $context, array $backtrace = null) Обрабатывает ошибки, отфильтровывая и регистрируя их в соответствии с настроенными битовыми полями. | |
| handleException(Exception|Throwable $exception, array $error = null) Обрабатывает исключение, регистрируя его, а затем передавая его другому обработчику. | ||
| static | handleFatalError(array $error = null) Функция, зарегистрированная для обработки фатальных ошибок PHP. | |
| static | stackErrors() Настраивает обработчик ошибок для отложенной обработки. | |
| static | unstackErrors() Извлекает сохраненные ошибки и передает их логгеру. |
Подробности
static Обработчик ошибок register(Обработчик ошибок $handler = null, bool $replace = true)
Регистрирует обработчик ошибок.
Параметры
| Обработчик ошибок | $handler | Обработчик для регистрации |
| bool | $replace | Заменить ли существующий обработчик |
Возвращаемое значение
| Обработчик ошибок | Зарегистрированный обработчик ошибок |
__construct(Буферизованный логгер $bootstrappingLogger = null)
Параметры
| Буферизованный логгер | $bootstrappingLogger |
setDefaultLogger(LoggerInterface $logger, array|int $levels = null, bool $replace = false)
Устанавливает логгер для ошибок без назначенных уровней.
Параметры
| LoggerInterface | $logger | Логгер PSR-3, который будет по умолчанию для заданных уровней |
| array|int | $levels | Массив соответствий E_* к LogLevel::* или целочисленное битовое поле констант E_* |
| bool | $replace | Заменить ли существующий логгер |
array setLoggers(array $loggers)
Устанавливает логгер для каждого уровня ошибки.
Параметры
| array | $loggers | Карта уровней ошибок к [LoggerInterface|null, LogLevel::*] |
Возвращаемое значение
| array | Предыдущая карта |
Исключения
| InvalidArgumentException |
callable|null setExceptionHandler(callable $handler = null)
Устанавливает пользовательский обработчик исключений.
Параметры
| callable | $handler | Обработчик, который будет вызван при возникновении исключения |
Возвращаемое значение
| callable|null | Предыдущий обработчик исключений |
int throwAt(int $levels, bool $replace = false)
Устанавливает уровни ошибок PHP, которые выбрасывают исключение при возникновении ошибки PHP.
Параметры
| int | $levels | Битовое поле констант E_* для ошибок, выбрасывающих исключения |
| bool | $replace | Заменить или дополнить предыдущее значение |
Возвращаемое значение
| int | Предыдущее значение |
int scopeAt(int $levels, bool $replace = false)
Устанавливает уровни ошибок PHP, для которых сохраняются локальные переменные.
Параметры
| int | $levels | Битовое поле констант E_* для ошибок с сохранением области видимости |
| bool | $replace | Заменить или дополнить предыдущее значение |
Возвращаемое значение
| int | Предыдущее значение |
int traceAt(int $levels, bool $replace = false)
Устанавливает уровни ошибок PHP, для которых сохраняется стек вызовов.
Параметры
| int | $levels | Битовое поле констант E_* для отслеживаемых ошибок |
| bool | $replace | Заменить или дополнить предыдущее значение |
Возвращаемое значение
| int | Предыдущее значение |
int screamAt(int $levels, bool $replace = false)
Устанавливает уровни ошибок, где оператор @ игнорируется.
Параметры
| int | $levels | Битовое поле констант E_* для ошибок, игнорируемых оператором @ |
| bool | $replace | Заменить или дополнить предыдущее значение |
Возвращаемое значение
| int | Предыдущее значение |
bool handleError($type, $message, $file, $line, array $context, array $backtrace = null)
Обрабатывает ошибки, фильтруя и регистрируя их в соответствии с настроенными битовыми полями.
Параметры
| $type | ||
| $message | ||
| $file | ||
| $line | ||
| array | $context | |
| array | $backtrace |
Возвращаемое значение
| bool | Возвращает false, когда обработка не выполняется, чтобы движок PHP мог обработать ошибку сам. |
Исключения
| ErrorException | Когда $this->thrownErrors запрашивает это |
handleException(Исключение|Throwable $exception, array $error = null)
Обрабатывает исключение, регистрирует его и передает другому обработчику.
Параметры
| Исключение|Throwable | $exception | Исключение для обработки |
| array | $error | Массив, возвращаемый error_get_last() |
static handleFatalError(array $error = null)
Зарегистрированная функция завершения для обработки фатальных ошибок PHP.
Параметры
| array | $error | Массив, возвращаемый error_get_last() |
static stackErrors()
Настраивает обработчик ошибок для отложенной обработки.
Также гарантирует, что неперехватываемые фатальные ошибки никогда не будут заглушены.
Как показано в http://bugs.php.net/42098 и http://bugs.php.net/60724, PHP имеет этап компиляции, где он ведет себя необычно. Чтобы обойти это, мы подключаем обработчик ошибок, который только складывает ошибки для последующей обработки.
Самая важная функция — предотвратить автозагрузку до тех пор, пока не будет вызван unstackErrors().
static unstackErrors()
Выгружает стопки ошибок и передает их логгеру.
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.0/Symfony/Component/Debug/ErrorHandler.html