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() Вынимает обработанные ошибки и передает их логгеру. |
Подробности
статический ErrorHandler register(ErrorHandler $handler = null, bool $replace = true)
Регистрирует обработчик ошибок.
Параметры
| ErrorHandler | $handler | Обработчик для регистрации |
| bool | $replace | Заменить ли существующий обработчик |
Возвращаемое значение
| ErrorHandler | Зарегистрированный обработчик ошибок |
__construct(BufferingLogger $bootstrappingLogger = null)
Параметры
| BufferingLogger | $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 | Обработчик, который будет вызываться при возникновении исключения Exception |
Возвращаемое значение
| 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(int $type, string $message, string $file, int $line)
Обрабатывает ошибки, фильтруя и регистрируя их в соответствии с настроенными битовыми полями.
Параметры
| int | $type | Одна из констант E_* |
| string | $message | |
| string | $file | |
| int | $line |
Возвращаемое значение
| bool | Возвращает false, когда обработка не выполняется, чтобы движок PHP мог обработать ошибку сам |
Исключения
| ErrorException | Когда $this->thrownErrors запрашивает это |
handleException(Exception|Throwable $exception, array $error = null)
Обрабатывает исключение, регистрируя его и перенаправляя другому обработчику.
Параметры
| Exception|Throwable | $exception | Исключение для обработки |
| array | $error | Массив, возвращаемый errorgetlast() |
статический handleFatalError(array $error = null)
Функция для обработки фатальных ошибок PHP, зарегистрированная при выходе из программы.
Параметры
| array | $error | Массив, возвращаемый errorgetlast() |
статический stackErrors()
Настраивает обработчик ошибок для отложенной обработки.
Гарантирует, что фатальные ошибки, не обрабатываемые через catch, никогда не будут заглушены.
Как показано в 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.1/Symfony/Component/Debug/ErrorHandler.html