ErrorHandler
class ErrorHandler
Общий обработчик ошибок для движка PHP.
Предоставляет пять битовых полей, которые управляют тем, как обрабатываются ошибки: - thrownErrors: ошибки выбрасываются как \ErrorException - loggedErrors: зарегистрированные ошибки, когда они не подавляются оператором @ - scopedErrors: ошибки выбрасываются или регистрируются с их локальным контекстом - tracedErrors: ошибки регистрируются с их трассировкой стека, только один раз для повторяющихся ошибок - screamedErrors: ошибки, которые никогда не подавляются оператором @
Каждый уровень ошибок может регистрироваться с помощью отдельного объекта регистратора PSR-3. Режим «крика» относится только к регистрации. Выбрасывание имеет приоритет над регистрацией. Неперехваченные исключения регистрируются как EERROR. Уровни EDEPRECATED и EUSERDEPRECATED никогда не выбрасываются. Уровни ERECOVERABLEERROR и EUSERERROR всегда выбрасываются. Неперехватываемые ошибки, которые могут быть обнаружены во время завершения работы, регистрируются, когда это позволяет бит-поле «крика». Поскольку ошибки связаны с производительностью, повторяющиеся ошибки регистрируются полностью, чтобы разработчик мог увидеть их и оценить важность их исправления по сравнению с другими ошибками того же уровня.
Постоянные значения
| TYPE_DEPRECATION |
Методы
| static ErrorHandler | register(ErrorHandler|null|int $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) Устанавливает пользовательский обработчик исключений. | |
| 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() Выталкивает сохраненные ошибки и пересылает их в регистратор. | |
| setLevel(int|null $level) устарело Устанавливает уровень, на котором происходит преобразование в Exception. | ||
| setDisplayErrors(int $displayErrors) устарело Устанавливает значение флага display_errors. | ||
| static | setLogger(LoggerInterface $logger, string $channel = 'deprecation') устарело Устанавливает регистратор для заданного канала. | |
| handle($level, $message, $file = 'unknown', $line, $context = array()) устарело | ||
| handleFatal() устарело Обрабатывает фатальные ошибки PHP. |
Подробности
static Обработчик ошибок register(Обработчик ошибок|null|int $handler = null, bool $replace = true)
Регистрирует обработчик ошибок.
Параметры
| Обработчик ошибок|null|int | $handler | Обработчик для регистрации или @deprecated (с версии 2.6, будет удалён в 3.0) битовое поле уровней, которые выбрасываются |
| 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)
Устанавливает пользовательский обработчик исключений.
Параметры
| callable | $handler | Обработчик, который будет вызван при возникновении исключения |
Возвращаемое значение
| callable|null | Предыдущий обработчик исключений |
Исключения
| InvalidArgumentException |
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(Исключение|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()
Раскладывает наложенные ошибки и пересылает их в логгер.
setLevel(int|null $level) устаревший
устаревший
Устанавливает уровень, на котором выполняется преобразование в исключение.
Параметры
| int|null | $level | Уровень (null, чтобы использовать значение error_reporting(), и 0 для отключения) |
setDisplayErrors(int $displayErrors) устаревший
устаревший
Устанавливает значение флага display_errors.
Параметры
| int | $displayErrors | Значение флага display_errors |
static setLogger(LoggerInterface $logger, string $channel = 'deprecation') устаревший
устаревший
Устанавливает логгер для данного канала.
Параметры
| LoggerInterface | $logger | Интерфейс логгера |
| string | $channel | Канал, связанный с логгером (deprecation, emergency или scream) |
handle($level, $message, $file = 'unknown', $line, $context = array()) устаревший
устаревший
Параметры
| $level | ||
| $message | ||
| $file | ||
| $line | ||
| $context |
handleFatal() устаревший
устаревший
Обрабатывает фатальные ошибки PHP.
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
http://api.symfony.com/2.8/Symfony/Component/Debug/ErrorHandler.html