Unlimited WordPress themes, graphics, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. Laravel 5
Code

Que sont les Exceptions de Laravel?

Difficulty:IntermediateLength:ShortLanguages:

French (Français) translation by Frédéric Arijs (you can also view the original English article)

En tant que développeur PHP, vous utilisez peut-être les exceptions, car elles vous permettent de remarquer lorsque quelque chose se passe mal ou que l'utilisateur a fait une erreur de manipulation (comme une division par zéro). Sans les exceptions, votre application finirait par afficher des erreurs indésirables et serait bien plus difficile à débugger. Il est aussi important que vous arretiez l'exécution immédiatement et qu'une autre action prenne le relais.

Les exceptions sont vraiment simples et permettent une évolution plus facile du développement. Une fois maitrisé l'utilisation des exceptions, elles feront parties intégrantes de vos développements.

Qu'est-ce qu'une Exception?

Je pense que la meilleure définition des exceptions est donnée par Martin Fowler:

Les exceptions signalent quelque chose qui se passe en dehors des limites du comportement attendu du code en question.

Pour être précis, une exception est un événement, qui se produit pendant l'exécution d'un programme, qui perturbe le déroulement normal des instructions du programme. Quand vous lancez une exception - throw (créer un objet d'exception et rendre la main au système) - le système va la capturer - catch - en recherchant le handler approprié et retourner le bon message.

Quand devons-nous utiliser les exceptions?

Utilisez les exceptions lorsque votre système se trouve face à des circonstances exceptionnelles qu'il ne peut pas gérer. On n'utilise les exceptions seulement lorsque le système ne peut pas déterminer ce qui c'est passé. Martin Fowler croit que "si l'erreur est un comportement possible, alors il ne faut pas utiliser les exceptions". Cela veut dire que vous devez utiliser les exceptions lorsque vous n'êtes pas en mesure de déterminer l'erreur. Les exceptions ne devraient être utilisées que dans des circonstances exceptionnelles.

Note: les exceptions ne sont pas bonnes pour gérer une logique dans le code.

Pour une opération comme la validation de données entrantes, utiliser les exceptions est mal. Premièrement, le texte entrant doit être déterminer, et une application comme celle là doit retourner une collection d'erreurs et non pas une seule erreur. Je crois qu'il faut éliminer l'utilisation des exceptions dans toutes les circonstances où l'on peut rencontrer des erreurs de validation.

Capturer une exception est très important, sans quoi le système va retourner une erreur. L'opération de capture doit être la plus proche possible du point qui pourrait déclencher l'exception.

Que sont les exceptions de Laravel?

Laravel utilise des Handler d'exception, qui est une classe dans App\Exceptions\Handler.php. Cette classe contient deux méthodes principales (la méthode renderHttpException qui est utilisée pour toutes les exceptions HTTP, comme les 404 et 503, est dans la classe parent du Handler). La première est report, qui est utilisée pour logger les exceptions ou les envoyer vers un service externe. Voici un exemple de la méthode report:

La seconde est render. La méthode render est responsable de la convertion d'une exception en réponse HTTP qui doit être retournée au navigateur. Voici un exemple de méthode render:

Note: vous pouvez utilser la propriété $dontReport du handler d'une exception pour ignorer des exceptions par type.

Vous pouvez changer les méthodes des exceptions Laravel par les vôtre de cette façon:

Ceci n'appellera la méthode render que si la configuration de debug est à true.

Comment créer vos propres exceptions Laravel?

Vous pourriez avoir besoin de créer vos propre classe d'exceptions. Vous devez étendre la classe de base des exceptions Laravel - J'ai créé une classe abstraite qui servira de base à nos classes d'exceptions. Créez un fichier dans App\Exceptions\monException.php:

Et la classe d'exception:

Vous pouvez utiliser la classe ci-dessus dans votre code:

En parallèle de la classe d'exception du coeur de Laravel, vous pouvez utiliser le module Assertion. Il peut être utilisé comme une classe d'exception, vous pouvez l'utiliser pour éviter les blocs if spaghetti dans votre code.

Pour installer le module Assertion, vous devez taper la commande suivante:

Par exemple, si vous souhaitez vérifier l'adresse email d'un utilisateur, vous pouvez faire ceci:

Conclusion

Indépendemment du language que vous choisissez d'utiliser, les exceptions sont très importantes à comprendre car elles nous aident à garder le contrôle sur le déroulement de l'exécution d'une application.

De plus, elles nous aident à logger les problèmes lorsqu'ils arrivent et rendent l'application plus robuste.

Comme vous pouvez le voir dans le travail de ce tutoriel, Laravel est un framework qui offre d'excellentes fonctionnalitées de capture des exceptions pour le développement d'applications web.

Advertisement
Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.