Обработка ошибок PHP может быть чем -то вроде головной боли. Обычно приложение использует обработчик ошибок системного уровня и/или ошибки подавления с помощью префикса @ . Но те случаи, когда ваш код должен действовать на запускаемых ошибках, более сложны.
Эта библиотека предоставляет два удобных метода для обработки ошибок на кодовых блоках, либо путем броска исключений, либо запустив код обратного вызова, когда возникает ошибка.
Текущая версия поддерживает PHP ^7.2|^8.0 .
Установить с композитором;
composer require phrity/util-errorhandler
Класс предоставляет два основных метода; with() и withAll() . Разница состоит в том, что with() сразу же будет действовать при ошибке и прервать дальнейшее выполнение кода, в то время как withAll() попытается выполнить весь блок кода, прежде чем действовать при возникновении ошибок.
use Phrity Util ErrorHandler ;
$ handler = new ErrorHandler ();
$ result = $ handler -> with ( function () {
// Code to execute
return $ success_result ;
});
$ result = $ handler -> withAll ( function () {
// Code to execute
return $ success_result ;
});Приведенные выше примеры будут запускать код обратного вызова, но если произойдет ошибка, она бросит ошибку. Сообщение об ошибке и серьезность будут посланием ошибки запуска.
with() сразу же бросится, когда это произойдетwithAll() бросится, когда код будет завершен; Если произошло более одной ошибки, первая будет брошена use Phrity Util ErrorHandler ;
$ handler = new ErrorHandler ();
$ result = $ handler -> with ( function () {
// Code to execute
return $ success_result ;
}, new RuntimeException ( ' A specified error ' ));
$ result = $ handler -> withAll ( function () {
// Code to execute
return $ success_result ;
}, new RuntimeException ( ' A specified error ' )); Приведенные выше примеры будут запускать код обратного вызова, но если произойдет ошибка, она будет выбросить при предоставленных. Брошенная броска будет иметь Errorexception, прикрепленное как $previous .
with() сразу же бросится, когда это произойдетwithAll() бросится, когда код будет завершен; Если произошло более одной ошибки, первая будет брошена use Phrity Util ErrorHandler ;
$ handler = new ErrorHandler ();
$ result = $ handler -> with ( function () {
// Code to execute
return $ success_result ;
}, function ( ErrorException $ error ) {
// Code to handle error
return $ error_result ;
});
$ result = $ handler -> withAll ( function () {
// Code to execute
return $ success_result ;
}, function ( array $ errors , $ success_result ) {
// Code to handle errors
return $ error_result ;
});Приведенные выше примеры будут запускать код обратного вызова, но если произойдет ошибка, она также вызовет обратный вызов ошибки.
with() сразу же запустит обратный вызов ошибки, когда произойдет ошибка; Ошибка обратного вызовов ожидает экземпляра ErrorexceptionwithAll() запустит обратный вызов ошибки, когда код будет завершен; Ошибка обратного вызовов ожидает массива errorexception и возвращаемый результат обратного вызова кода Оба with() и withAll() принимают уровень ошибок в качестве последнего параметра.
use Phrity Util ErrorHandler ;
$ handler = new ErrorHandler ();
$ result = $ handler -> with ( function () {
// Code to execute
return $ success_result ;
}, null , E_USER_ERROR );
$ result = $ handler -> withAll ( function () {
// Code to execute
return $ success_result ;
}, null , E_USER_ERROR & E_USER_WARNING ); Любое значение или комбинация значений, принятых set_error_handler, используется. По умолчанию E_ALL . Список констант.
Класс также имеет глобальные методы set() и restore() .
use Phrity Util ErrorHandler ;
$ handler = new ErrorHandler ();
$ handler -> set (); // Throws ErrorException on error
$ handler -> set ( new RuntimeException ( ' A specified error ' )); // Throws provided Throwable on error
$ handler -> set ( function ( ErrorException $ error ) {
// Code to handle errors
return $ error_result ;
}); // Runs callback on error
$ handler -> restore (); // Restores error handler Phrity Util ErrorHandler {
/* Methods */
public __construct()
public with (callable $ callback , mixed $ handling = null , int $ levels = E_ALL ) : mixed
public withAll (callable $ callback , mixed $ handling = null , int $ levels = E_ALL ) : mixed
public set ( $ handling = null , int $ levels = E_ALL ) : mixed
public restore () : bool
}| Версия | PHP | |
|---|---|---|
1.1 | ^7.4|^8.0 | Некоторые улучшения |
1.0 | ^7.2|^8.0 | Начальная версия |