ErrorHandler
class ErrorHandler
A generic ErrorHandler for the PHP engine.
Provides five bit fields that control how errors are handled: - thrownErrors: errors thrown as \ErrorException - loggedErrors: logged errors, when not @-silenced - scopedErrors: errors thrown or logged with their local context - tracedErrors: errors logged with their stack trace - screamedErrors: never @-silenced errors
Each error level can be logged by a dedicated PSR-3 logger object. Screaming only applies to logging. Throwing takes precedence over logging. Uncaught exceptions are logged as E_ERROR. E_DEPRECATED and E_USER_DEPRECATED levels never throw. E_RECOVERABLE_ERROR and E_USER_ERROR levels always throw. Non catchable errors that can be detected at shutdown time are logged when the scream bit field allows so. As errors have a performance cost, repeated errors are all logged, so that the developer can see them and weight them as more important to fix than others of the same level.
Methods
| static ErrorHandler | register(ErrorHandler $handler = null, bool $replace = true) Registers the error handler. | |
| __construct(BufferingLogger $bootstrappingLogger = null) | ||
| setDefaultLogger(LoggerInterface $logger, array|int $levels = E_ALL, bool $replace = false) Sets a logger to non assigned errors levels. | ||
| array | setLoggers(array $loggers) Sets a logger for each error level. | |
| callable|null | setExceptionHandler(callable $handler = null) Sets a user exception handler. | |
| int | throwAt(int $levels, bool $replace = false) Sets the PHP error levels that throw an exception when a PHP error occurs. | |
| int | scopeAt(int $levels, bool $replace = false) Sets the PHP error levels for which local variables are preserved. | |
| int | traceAt(int $levels, bool $replace = false) Sets the PHP error levels for which the stack trace is preserved. | |
| int | screamAt(int $levels, bool $replace = false) Sets the error levels where the @-operator is ignored. | |
| bool | handleError(int $type, string $message, string $file, int $line) Handles errors by filtering then logging them according to the configured bit fields. | |
| handleException(Exception|Throwable $exception, array $error = null) Handles an exception by logging then forwarding it to another handler. | ||
| static | handleFatalError(array $error = null) Shutdown registered function for handling PHP fatal errors. | |
| FatalErrorHandlerInterface[] | getFatalErrorHandlers() Gets the fatal error handlers. |
Details
static ErrorHandler register(ErrorHandler $handler = null, bool $replace = true)
Registers the error handler.
Parameters
| ErrorHandler | $handler | The handler to register |
| bool | $replace | Whether to replace or not any existing handler |
Return Value
| ErrorHandler | The registered error handler |
__construct(BufferingLogger $bootstrappingLogger = null)
Parameters
| BufferingLogger | $bootstrappingLogger |
setDefaultLogger(LoggerInterface $logger, array|int $levels = E_ALL, bool $replace = false)
Sets a logger to non assigned errors levels.
Parameters
| LoggerInterface | $logger | A PSR-3 logger to put as default for the given levels |
| array|int | $levels | An array map of E_* to LogLevel::* or an integer bit field of E_* constants |
| bool | $replace | Whether to replace or not any existing logger |
array setLoggers(array $loggers)
Sets a logger for each error level.
Parameters
| array | $loggers | Error levels to [LoggerInterface|null, LogLevel::*] map |
Return Value
| array | The previous map |
Exceptions
| InvalidArgumentException |
callable|null setExceptionHandler(callable $handler = null)
Sets a user exception handler.
Parameters
| callable | $handler | A handler that will be called on Exception |
Return Value
| callable|null | The previous exception handler |
int throwAt(int $levels, bool $replace = false)
Sets the PHP error levels that throw an exception when a PHP error occurs.
Parameters
| int | $levels | A bit field of E_* constants for thrown errors |
| bool | $replace | Replace or amend the previous value |
Return Value
| int | The previous value |
int scopeAt(int $levels, bool $replace = false)
Sets the PHP error levels for which local variables are preserved.
Parameters
| int | $levels | A bit field of E_* constants for scoped errors |
| bool | $replace | Replace or amend the previous value |
Return Value
| int | The previous value |
int traceAt(int $levels, bool $replace = false)
Sets the PHP error levels for which the stack trace is preserved.
Parameters
| int | $levels | A bit field of E_* constants for traced errors |
| bool | $replace | Replace or amend the previous value |
Return Value
| int | The previous value |
int screamAt(int $levels, bool $replace = false)
Sets the error levels where the @-operator is ignored.
Parameters
| int | $levels | A bit field of E_* constants for screamed errors |
| bool | $replace | Replace or amend the previous value |
Return Value
| int | The previous value |
bool handleError(int $type, string $message, string $file, int $line)
Handles errors by filtering then logging them according to the configured bit fields.
Parameters
| int | $type | One of the E_* constants |
| string | $message | |
| string | $file | |
| int | $line |
Return Value
| bool | Returns false when no handling happens so that the PHP engine can handle the error itself |
Exceptions
| ErrorException | When $this->thrownErrors requests so |
handleException(Exception|Throwable $exception, array $error = null)
Handles an exception by logging then forwarding it to another handler.
Parameters
| Exception|Throwable | $exception | An exception to handle |
| array | $error | An array as returned by error_get_last() |
static handleFatalError(array $error = null)
Shutdown registered function for handling PHP fatal errors.
Parameters
| array | $error | An array as returned by error_get_last() |
protected FatalErrorHandlerInterface[] getFatalErrorHandlers()
Gets the fatal error handlers.
Override this method if you want to define more fatal error handlers.
Return Value
| FatalErrorHandlerInterface[] | An array of FatalErrorHandlerInterface |
© 2004–2017 Fabien Potencier
Licensed under the MIT License.
https://api.symfony.com/4.1/Symfony/Component/Debug/ErrorHandler.html