ErrorHandler
class ErrorHandler
Универсальный обработчик ошибок для движка PHP.
Предоставляет пять битовых полей, управляющих обработкой ошибок: - thrownErrors: ошибки выбрасываются как \ErrorException - loggedErrors: зарегистрированные ошибки, когда не подавлены @ - scopedErrors: ошибки, брошенные или зарегистрированные с их локальным контекстом - tracedErrors: ошибки, зарегистрированные с их стеком вызовов, только один раз для повторяющихся ошибок - screamedErrors: ошибки, которые никогда не подавляются оператором @
Каждый уровень ошибки может регистрироваться отдельным объектом логгера PSR-3. Режим "screaming" относится только к регистрации. Выбрасывание имеет приоритет перед регистрацией. Необработанные исключения регистрируются как EERROR. Уровни EDEPRECATED и EUSERDEPRECATED никогда не выбрасываются. Уровни ERECOVERABLEERROR и EUSERERROR всегда выбрасываются. Неперехватываемые ошибки, которые могут быть обнаружены во время завершения работы, регистрируются, если поле "scream" разрешает это. Поскольку ошибки несут затраты на производительность, повторяющиеся ошибки полностью регистрируются, чтобы разработчик мог их увидеть и оценить как более важные для исправления, чем другие ошибки того же уровня.
Константы
| TYPE_DEPRECATION |
Методы
| static ErrorHandler | register(ErrorHandler|null|int $handler = null, bool $replace = true) Регистрирует обработчик ошибок. | |
| 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. |
Подробности
статический ErrorHandler register(ErrorHandler|null|int $handler = null, bool $replace = true)
Регистрирует обработчик ошибок.
Параметры
| ErrorHandler|null|int | $handler | Обработчик для регистрации или @deprecated (с версии 2.6, будет удалено в 3.0) поле битовой маски выброшенных уровней |
| bool | $replace | Заменить или нет существующий обработчик |
Возвращаемое значение
| ErrorHandler | Зарегистрированный обработчик ошибок |
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 | Обработчик, который будет вызван при возникновении исключения Exception |
Возвращаемое значение
| 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(Exception|Throwable $exception, array $error = null)
Обрабатывает исключение, регистрируя его, а затем передавая другому обработчику.
Параметры
| Exception|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()
Разбирает накопленные ошибки и передает их в логгер.
setLevel(int|null $level) устаревший
устаревший
Устанавливает уровень, на котором происходит преобразование в Exception.
Параметры
| int|null | $level | Уровень (null – использовать значение error_reporting(), 0 – отключить) |
setDisplayErrors(int $displayErrors) устаревший
устаревший
Устанавливает значение флага display_errors.
Параметры
| int | $displayErrors | Значение флага display_errors |
статический 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.7/Symfony/Component/Debug/ErrorHandler.html