J'ai utilisé une classe qui convertit les erreurs en exceptions dans PHP 5 et enregistre les erreurs dans un fichier et/ou les envoie par courrier électronique à un compte spécifié. Y a-t-il une meilleure manière de faire cela? Il y a quelque chose à ce sujet que je sais peut être mieux. J'utilise set_error_handler. Mon code fait ce qu'il devrait en ce qu'il se connecte et envoie des courriels erreurs mais je fais le processus de la meilleure façon. Serait-il préférable de le connecter à une base de données - en supposant qu'une connexion de données serait présente dans une erreur. Quelle est la norme de l'industrie pour les sites Web?Meilleures pratiques pour la gestion globale des erreurs en PHP?
Répondre
Votre code pour traiter les erreurs doit être absolument à l'épreuve des balles.
Parfois, il entrera en action pour une raison vraiment obscure que vous avez oublié de tester, mais vous voulez quand même qu'il s'exécute quand il se débat dans la version de code de l'apocalypse.
Écrire sa sortie à une base de données crée une énorme dépendance pour votre code - et l'absence de la base de données est plus susceptible d'être une cause majeure de problèmes qui seraient déclarés. S'appuyer sur le courrier est toujours une dépendance, mais l'objectif le plus immédiat dans le cas d'une panne devrait être de faire fonctionner le système à nouveau - donc l'envoi d'un email est un moyen très efficace de vous prévenir que vous devez réparer quelque chose .
installations de gestion des fichiers PHP ne se prêtent pas à un accès simultané - donc, bien que je vous recommande de vous connecter tous les événements locaux, ne pas écrire les fichiers à partir de votre code - utiliser l'interface syslog. Par tous les moyens envoyer un e-mail avec les détails pertinents après vous l'avez envoyé au syslog.
HTH
C.
Je ne voudrais pas vider cette logique dans le gestionnaire d'erreurs.
Jetez un oeil à cette méthode de Kohana.
/**
* PHP error handler, converts all errors into ErrorExceptions. This handler
* respects error_reporting settings.
*
* @throws ErrorException
* @return TRUE
*/
public static function error_handler($code, $error, $file = NULL, $line = NULL)
{
if (error_reporting() & $code)
{
// This error is not suppressed by current error reporting settings
// Convert the error into an ErrorException
throw new ErrorException($error, $code, 0, $file, $line);
}
// Do not execute the PHP error handler
return TRUE;
}
Nettoyez et faites ce que décrit la méthode. Vous pouvez maintenant déplacer votre manipulation dans un gestionnaire d'exceptions ou dans un bloc catch.
Eh bien, j'ai répondu à cette question quand il avait un échantillon de code, mais maintenant il a disparu alors je m'excuse si ma réponse n'a aucun sens. –
- 1. Recommandations de gestion des erreurs AJAX et meilleures pratiques
- 2. la gestion des exceptions meilleures pratiques
- 3. Meilleures pratiques pour la gestion des erreurs dans un service Web
- 4. Meilleures pratiques pour la gestion des clés/certificats
- 5. Meilleures pratiques pour la gestion des paramètres Hudson
- 6. Quelles sont les meilleures pratiques pour la gestion des erreurs dans Perl?
- 7. PHP inclure la question des meilleures pratiques
- 8. Meilleures pratiques pour le débogage des erreurs de liaison
- 9. Meilleures pratiques dans la gestion des modules Prérequis
- 10. Meilleures pratiques de gestion des exceptions de base de données
- 11. Meilleures pratiques Android Meilleures pratiques
- 12. Objets et gestion des erreurs en PHP
- 13. Gestion des erreurs PHP MySQL
- 14. PDO: gestion des erreurs
- 15. php et mysql, meilleures pratiques
- 16. Rails Meilleures pratiques de gestion des fichiers de configuration i18n
- 17. Meilleures pratiques pour le traitement des erreurs de la base de données dans CodeIgniter
- 18. gestion des erreurs dans php
- 19. Gestion des erreurs d'exécution ActionScript
- 20. Spring MVC Domain Gestion des objets Meilleures pratiques
- 21. Meilleures pratiques pour une API en PHP: fonctions, ou classes?
- 22. Meilleures pratiques pour l'organisation de projets php en utilisant GIT?
- 23. Meilleures pratiques pour le développement distribué en PHP
- 24. Meilleures pratiques de surcharge
- 25. Meilleures pratiques pour Python UnicodeDecodeError
- 26. Meilleures pratiques pour stocker des clés secrètes
- 27. meilleures pratiques pour retour des références d'objets
- 28. Meilleures pratiques pour la collection XML
- 29. Quelles sont les meilleures pratiques pour la gestion des identifiants d'événements?
- 30. Meilleures pratiques pour le chiffrement MySQL?
refactormycode.com –
Vous devez définir votre gestionnaire d'erreur avec 'set_error_handler'. Sinon, quelle est votre question? Qu'est-ce que votre code ne fait pas que vous voulez qu'il fasse? Sois plus précis. – meagar