✅ Nowości, motywy, wtyczki WEB i WordPress. Tutaj dzielimy się wskazówkami i najlepszymi rozwiązaniami dla stron internetowych.

Interfejs rejestrowania PSR (i dlaczego rejestrowanie ma znaczenie)

29

Dwie funkcje PHP, które, jak sądzę, są często nadużywane, jeśli chodzi o „debugowanie", to użycie echo i var_dump. Mówiłem o tym w kilku różnych artykułach dotyczących debugowania (takich jak tutaj i tutaj ).

I chociaż jestem fanem używania debuggera, myślę, że ważne jest również zaimplementowanie pewnego rodzaju systemu rejestrowania, aby Ty lub Twój klient mogli cofnąć się i przejrzeć aktywność, która ma miejsce w systemie, tak jak oni lub ich użytkownicy używałem go.

Są jednak dwa aspekty, aby to zrobić, zwłaszcza jeśli chcesz śledzić interfejs logowania PSR, a są to:

  1. zasady rzeczywistego interfejsu logowania,
  2. projekt, który poprawnie implementuje wspomniany interfejs logowania.

Dlaczego więc nie omówić obu w tym poście?

Interfejs rejestrowania PSR

Interfejs logowania PSR (lub PSR-3) obejmuje wiele rzeczy, o których możesz przeczytać bardziej szczegółowo na właściwej stronie.

Obejmują one:

  1. Podstawy
  2. Wiadomości
  3. Kontekst
  4. Zajęcia pomocnicze
  5. Pakiety
  6. Interfejsy
  7. Poziomy dziennika
  8. I więcej.

Ale na potrzeby tego artykułu chcę opowiedzieć konkretnie o samym interfejsie, projekcie, który go implementuje i dlaczego jest to ważne.

Interfejs logowania

Strona główna dokumentacji stwierdza:

W tym dokumencie opisano wspólny interfejs bibliotek rejestrowania.

Głównym celem jest umożliwienie bibliotekom otrzymywania obiektu PsrLogLoggerInterface i zapisywania do niego logów w prosty i uniwersalny sposób.

Z punktu widzenia programisty to miłe, prawda? Chodzi mi o to, że zapewnia pojedynczy, spójny sposób, na który możemy postawić na dowolną bibliotekę rejestrowania, którą zdecydujemy się używać w naszych projektach. W dalszej części artykułu omówię moją ulubioną bibliotekę.

Dla tych, którzy są nowicjuszami w programowaniu obiektowym lub po prostu są ciekawi, jakie korzyści przynosi nam spójny interfejs, pomyśl o tym w ten sposób: niezależnie od tego, jaki system wybierzesz, masz gwarancję posiadania określonego zestawu funkcji, stanów itd. możesz użyć w swojej aplikacji.

Ostatecznie dodanie systemu rejestrowania, który ma standard, według którego musi przestrzegać, zapewnia szereg korzyści niezależnie od wybranej biblioteki (o ile jest on zgodny z PSR-3).

Try Monolog

Monolog jest mniej więcej narzędziem do logowania de facto dla aplikacji PHP.

Interfejs rejestrowania PSR (i dlaczego rejestrowanie ma znaczenie)

Łatwo jest dodać projekt za pomocą Composera, ale zawiera on również wiele różnych sposobów na wyprowadzanie danych:

Monolog wysyła logi do plików, gniazd, skrzynek odbiorczych, baz danych i różnych usług internetowych. Zobacz pełną listę handlerów poniżej. Specjalne programy obsługi umożliwiają budowanie zaawansowanych strategii rejestrowania.

Osobiście używałem go tylko w kontekście wysyłania danych wyjściowych do plików; jednak posiadanie możliwości wyprowadzania go do innych systemów (zwłaszcza baz danych, takich jak podczas pracy z WordPress) jest przyjemna. Oczywiście nie chcesz nadużywać tej umiejętności.

Po drugie, ważne jest, aby zdać sobie sprawę, że chociaż możesz utworzyć wystąpienie Loggera w ramach funkcji lub innej klasy, istnieją inne, bardziej zorientowane obiektowo sposoby na zrobienie tego. PSR-3 obejmuje to (jak wspomniano powyżej).

Krótko mówiąc, chcesz się upewnić, że Twoja klasa akceptuje instancję klasy, która implementuje LoggerInterface. Monolog implementuje wspomniany interfejs, więc to żaden problem.

Co więcej, co się dzieje, gdy masz grupę powiązanych klas, z których wszystkie muszą zaimplementować rejestrowanie?

  • Czy te klasy dziedziczą po wspólnym rodzicu?
  • Czy te klasy implementują cechę? (Jest to opcja, którą niedawno przedstawił mi znajomy.)
  • Czy każda klasa po prostu akceptuje zależność poprzez wstrzyknięcie konstruktora?

Rejestratory można dodawać do klasy na wiele sposobów i zależy to od tego, jak zorganizowany jest projekt.

Więcej o logowaniu

W każdym razie wprowadzenie logowania do aplikacji jest ważne z wielu powodów, takich jak możliwość rozwiązywania problemów, gdy coś nie zachowuje się zgodnie z oczekiwaniami zarówno w przypadku programowania, przemieszczania, a zwłaszcza w środowisku produkcyjnym.

Źródło nagrywania: tommcfarlin.com

Ta strona korzysta z plików cookie, aby poprawić Twoje wrażenia. Zakładamy, że nie masz nic przeciwko, ale możesz zrezygnować, jeśli chcesz. Akceptuję Więcej szczegółów