ErrorHandler
class ErrorHandler
Общий обработчик ошибок для движка PHP.
Предоставляет пять битовых полей, которые управляют тем, как обрабатываются ошибки: - thrownErrors: ошибки, выбрасываемые как \ErrorException - loggedErrors: зарегистрированные ошибки, когда не отключены оператором @ - scopedErrors: ошибки, выбрасываемые или регистрируемые с их локальным контекстом - tracedErrors: ошибки, регистрируемые со своим стеком вызовов - screamedErrors: ошибки, которые никогда не отключаются оператором @
Каждый уровень ошибок может регистрироваться с помощью отдельного объекта логгера PSR-3. Крик относится только к регистрации. Выбрасывание имеет приоритет над регистрацией. Неперехваченные исключения регистрируются как EERROR. EDEPRECATED и EUSERDEPRECATED уровни никогда не выбрасываются. ERECOVERABLEERROR и EUSERERROR уровни всегда выбрасываются. Неперехватываемые ошибки, которые могут быть обнаружены в момент завершения работы, регистрируются, когда поле крика разрешено. Поскольку ошибки имеют затраты на производительность, повторяющиеся ошибки регистрируются полностью, чтобы разработчик мог их видеть и оценивать как более важные для исправления, чем другие такого же уровня.
Методы
| static ErrorHandler | register(ErrorHandler $handler = null, bool $replace = true) Регистрирует обработчик ошибок. | |
| __construct(BufferingLogger $bootstrappingLogger = null) | ||
| setDefaultLogger(LoggerInterface $logger, array|int $levels = E_ALL, 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(int $type, string $message, string $file, int $line) Обрабатывает ошибки, отфильтровывая и регистрируя их в соответствии с настроенными битовыми полями. | |
| handleException(Exception|Throwable $exception, array $error = null) Обрабатывает исключение, регистрируя его, а затем перенаправляя его другому обработчику. | ||
| static | handleFatalError(array $error = null) Функция, зарегистрированная для завершения работы, для обработки критических ошибок PHP. | |
| static | stackErrors() Настраивает обработчик ошибок для отложенной обработки. | |
| static | unstackErrors() Удаляет наложенные ошибки и перенаправляет их логгеру. |
Подробности
статический ОбработчикОшибок register(ОбработчикОшибок $handler = null, bool $replace = true)
Регистрирует обработчик ошибок.
Параметры
| ОбработчикОшибок | $handler | Обработчик для регистрации |
| bool | $replace | Заменить ли существующий обработчик |
Возвращаемое значение
| ОбработчикОшибок | Зарегистрированный обработчик ошибок |
__construct(БуферизующийЛоггер $bootstrappingLogger = null)
Параметры
| БуферизующийЛоггер | $bootstrappingLogger |
setDefaultLogger(LoggerInterface $logger, array|int $levels = E_ALL, 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, при возникновении которых генерируется исключение.
Параметры
| 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(int $type, string $message, string $file, int $line)
Обрабатывает ошибки, отфильтровывая и логируя их в соответствии с настроенными битовыми полями.
Параметры
| int | $type | Одна из констант E_* |
| string | $message | |
| string | $file | |
| int | $line |
Возвращаемое значение
| bool | Возвращает false, когда обработка не происходит, позволяя PHP-движку обработать ошибку самостоятельно |
Исключения
| ErrorException | Когда $this->thrownErrors запрашивает это |
handleException(Исключение|Throwable $exception, array $error = null)
Обрабатывает исключение, регистрируя его, а затем передавая его другому обработчику.
Параметры
| Исключение|Throwable | $exception | Исключение для обработки |
| array | $error | Массив, возвращаемый errorgetlast() |
статический handleFatalError(array $error = null)
Функция, зарегистрированная для обработки фатальных ошибок PHP.
Параметры
| array | $error | Массив, возвращаемый errorgetlast() |
статический stackErrors()
Настраивает обработчик ошибок для отложенной обработки.
Обеспечивает также, что фатальные ошибки, не обрабатываемые исключениями, никогда не подавляются.
Как показано в http://bugs.php.net/42098 и http://bugs.php.net/60724, PHP на стадии компиляции ведет себя необычно. Для обхода этого мы подключаем обработчик ошибок, который только складирует ошибки для последующей обработки.
Наиболее важной функцией является предотвращение автозагрузки до тех пор, пока не будет вызван unstackErrors().
статический unstackErrors()
Извлекает складированные ошибки и передает их логгеру.
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/3.2/Symfony/Component/Debug/ErrorHandler.html