La gestion des erreurs PHP peut être un peu un mal de tête. En règle générale, une application utilise un gestionnaire d'erreurs au niveau du système et / ou des erreurs de suppression à l'aide du préfixe @ . Mais les cas où votre code doit agir sur les erreurs déclenchées est plus délicat.
Cette bibliothèque fournit deux méthodes de commodité pour gérer les erreurs sur les blocs de code, soit en lançant des exceptions ou en exécutant le code de rappel lorsqu'une erreur se produit.
La version actuelle prend en charge PHP ^7.2|^8.0 .
Installer avec compositeur;
composer require phrity/util-errorhandler
La classe fournit deux méthodes principales; with() et withAll() . La différence est qu'avec with() agira immédiatement sur une erreur et abandonnera l'exécution de code supplémentaire, tandis que withAll() tentera d'exécuter l'intégralité du bloc de code avant d'agir sur les erreurs qui se sont produites.
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 ;
});Les exemples ci-dessus exécuteront le code de rappel, mais si une erreur se produit, elle lancera une conception errorex. Le message d'erreur et la gravité seront ceux de l'erreur de déclenchement.
with() lancera immédiatement une foiswithAll() lancera une fois le code terminé; Si plus d'une erreur s'est produite, la première sera lancée 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 ' )); Les exemples ci-dessus exécuteront le code de rappel, mais si une erreur se produit, elle lancera à condition que jetable. Le lanceur lancé aura un errorexception attaché comme $previous .
with() lancera immédiatement une foiswithAll() lancera une fois le code terminé; Si plus d'une erreur s'est produite, la première sera lancée 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 ;
});Les exemples ci-dessus exécuteront le code de rappel, mais si une erreur se produit, elle appellera également le rappel d'erreur.
with() exécutera le rappel d'erreur immédiatement lorsque l'erreur s'est produite; Le rappel d'erreur s'attend à une instance errorexceptionwithAll() exécutera le rappel d'erreur lorsque le code est terminé; Rappel d'erreur s'attend à un tableau d'errorexception et le résultat renvoyé du rappel de code with() et withAll() accepte le (s) niveau (s) d'erreur comme dernier paramètre.
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 ); Toute valeur ou combinaison de valeurs acceptée par set_error_handler est utilisable. La valeur par défaut est E_ALL . Liste des constantes.
La classe dispose également de méthodes globales set() et 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
}| Version | Php | |
|---|---|---|
1.1 | ^7.4|^8.0 | Quelques améliorations |
1.0 | ^7.2|^8.0 | Version initiale |