05-09-2009, 09:23 AM
(Modification du message : 05-09-2009, 09:33 AM par Sephi-Chan.)
(05-09-2009, 02:48 AM)Argorate a écrit : Bref, dans toute chose il y a des pours et des contres, reste à savoir ce qui nous convient le mieux.
Et toi, peux-tu nous citer les avantages du or die() ? C'est pas tout de balayer les autres arguments (de manière plus ou moins foireuse) ?
Un énorme avantage dès exceptions, c'est d'en avoir plusieurs types. Tu ne comprends pas ça car tu ne travailles avec aucun outil (au sens librairie, framework). Imagine un ORM (je donne un exemple avec ActiveRecord de Ruby mais PHP dispose de ses propres ORM, telles que Doctrine et Propel). Ça met à ta disposition une API qui te permet de faire des choses comme :
# Trouve l'utilisateur dont l'ID est 3. Renvoie une exception RecordNotFound si rien n'est trouvé.
# C'est typiquement ce qu'on aura quand l'utilisateur cherchera à consulter le profil d'un autre.
# Cette méthode lance une exception RecordNotFound si elle ne trouve rien.
@user = User.find(3)
# On incrémente le compteur d'affichage du profil de cet utilisateur.
@user.profile_display += 1
# Cette forme du save lance une exception RecordNotSaved au lieu de renvoyer
# false si l'enregistrement échoue (car l'objet n'est pas valide, par exemple).
@user.save!
Et je gère mes erreurs du côté du contrôleur frontal, comme je l'ai montré plus haut. Mon code en ressort plus propre et ma gestion des exceptions est centralisé en un point (donc simple à maintenir, sans duplication de code, etc.) sans avoir rien à faire. Avec or die() et la fonction spéciale, tu réinventes la roue.
Puis bon, à l'ère de PHP5, ne pas utiliser les exceptions alors qu'elles sont à ta disposition, alors même que PHP conseille PDO depuis un moment… Ça vaut bien le coup de faire des remarques sur les bon programmeurs…
Sephi-Chan