Actualités WEB et WordPress, thèmes, plugins. Ici, nous partageons des conseils et les meilleures solutions de sites Web.

Interface de journalisation PSR (et pourquoi la journalisation est importante)

29

Deux fonctionnalités de PHP qui, à mon avis, sont souvent surutilisées en matière de "débogage" utilisent echo et var_dump. J’en ai parlé dans quelques articles différents sur le débogage (comme ici et ici ).

Et même si je suis fan de l’utilisation d’un débogueur, je pense qu’il est également important d’implémenter un type de système de journalisation afin que vous ou votre client puissiez revenir en arrière et revoir l’activité qui s’est produite dans le système au fur et à mesure qu’eux-mêmes ou leurs utilisateurs l’ont fait. été, vous savez, l’utiliser.

Cependant, il y a deux aspects à faire, surtout si vous cherchez à suivre l’interface de journalisation PSR et ils sont :

  1. les règles de l’interface de journalisation proprement dite,
  2. un projet qui implémente correctement ladite interface de journalisation.

Alors pourquoi ne pas aborder les deux dans cet article ?

L’interface de journalisation PSR

L’ interface de journalisation PSR (ou PSR-3) couvre un certain nombre de choses que vous pouvez lire plus en détail sur la page actuelle.

Ceux-ci inclus:

  1. Les bases
  2. messages
  3. Le contexte
  4. Classes d’assistance
  5. Paquets
  6. Interfaces
  7. Niveaux de journalisation
  8. Et plus.

Mais pour les besoins de cet article, je veux parler spécifiquement de l’interface elle-même, d’un projet qui l’implémente et pourquoi c’est important.

L’interface de journalisation

La page d’accueil de la documentation indique :

Ce document décrit une interface commune pour la journalisation des bibliothèques.

L’objectif principal est de permettre aux bibliothèques de recevoir un objet PsrLoggerInterface et d’y écrire des journaux de manière simple et universelle.

Du point de vue du développement, c’est bien, non ? Je veux dire, cela fournit un moyen unique et cohérent sur lequel nous pouvons parier pour la bibliothèque de journalisation que nous choisissons d’utiliser dans nos projets. Je couvrirai ma bibliothèque préférée plus tard dans l’article.

Pour ceux qui découvrent la programmation orientée objet ou qui sont simplement curieux de savoir comment une interface cohérente nous profite, pensez-y de cette façon : quel que soit le système que vous choisissez, vous êtes assuré d’avoir un certain ensemble de fonctions, d’états, etc. pouvez utiliser dans votre application.

En fin de compte, l’ajout d’un système de journalisation qui a une norme qu’il doit suivre offre une variété d’avantages quelle que soit la bibliothèque que vous choisissez (tant qu’elle est conforme à PSR-3).

Essayez Monologue

Monolog est plus ou moins l’utilitaire de journalisation de facto pour les applications PHP.

Interface de journalisation PSR (et pourquoi la journalisation est importante)

Il est facile d’ajouter le projet via Composer, mais il inclut également différentes manières de générer des données :

Monolog envoie vos journaux vers des fichiers, des sockets, des boîtes de réception, des bases de données et divers services Web. Voir la liste complète des gestionnaires ci-dessous. Des gestionnaires spéciaux vous permettent de créer des stratégies de journalisation avancées.

Personnellement, je ne l’ai utilisé que dans le cadre de l’envoi de sorties vers des fichiers ; cependant, avoir la possibilité de le sortir sur d’autres systèmes (en particulier des bases de données comme lorsque vous travaillez avec WordPress) est agréable. Bien sûr, vous ne voulez pas abuser de cette capacité.

Deuxièmement, il est important de reconnaître que bien que vous puissiez instancier le Logger dans une fonction ou une autre classe, il existe d’autres moyens plus orientés objet de le faire. PSR-3 couvre cela (comme mentionné ci-dessus).

En bref, vous voulez vous assurer que votre classe accepte une instance d’une classe qui implémente LoggerInterface. Monolog implémente ladite interface, donc ce n’est pas un problème.

De plus, que se passe-t-il lorsque vous avez un groupe de classes liées qui doivent toutes implémenter la journalisation ?

  • Ces classes héritent-elles d’un parent commun ?
  • Ces classes implémentent-elles un trait? (C’est une option qu’un ami m’a récemment présentée.)
  • Chaque classe accepte-t-elle simplement la dépendance via l’injection de constructeur ?

Il existe différentes façons d’ajouter des enregistreurs à une classe et cela dépend de la façon dont votre projet est organisé.

En savoir plus sur la journalisation

Dans tous les cas, l’introduction de la journalisation dans une application est importante pour diverses raisons, telles que la possibilité de dépanner lorsque quelque chose ne se comporte pas comme prévu à la fois dans le développement, la mise en scène et surtout en production.

Source d’enregistrement: tommcfarlin.com

This website uses cookies to improve your experience. We'll assume you're ok with this, but you can opt-out if you wish. Accept Read More