✅ Новости WEB и WordPress, темы, плагины. Здесь мы делимся советами и лучшими решениями для веб-сайтов.

Интерфейс ведения журнала PSR (и почему ведение журнала имеет значение)

55

Две функции PHP, которыми, как мне кажется, часто злоупотребляют, когда дело доходит до «отладки», — это использование echo и var_dump. Я говорил об этом в нескольких разных статьях об отладке (например , здесь и здесь ).

И хотя я являюсь поклонником использования отладчика, я думаю, что также важно реализовать тип системы ведения журнала, чтобы вы или ваш клиент могли вернуться и просмотреть действия, которые происходили в системе, как они или их пользователи был, вы знаете, использовать его.

Однако для этого есть два аспекта, особенно если вы хотите следовать интерфейсу ведения журнала PSR, а именно:

  1. правила для фактического интерфейса регистрации,
  2. проект, который правильно реализует указанный интерфейс ведения журнала.

Так почему бы не заняться обоими в этом посте?

Интерфейс регистрации PSR

Интерфейс ведения журнала PSR (или PSR-3) охватывает ряд аспектов, о которых вы можете более подробно прочитать на настоящей странице.

Это включает:

  1. Основы
  2. Сообщения
  3. Контекст
  4. Вспомогательные классы
  5. Пакеты
  6. Интерфейсы
  7. Уровни журнала
  8. И более.

Но для целей этой статьи я хочу поговорить именно о самом интерфейсе, проекте, который его реализует, и почему это важно.

Интерфейс регистрации

На домашней странице документации указано:

Этот документ описывает общий интерфейс для библиотек протоколирования.

Основная цель — позволить библиотекам получать объект PsrLogLoggerInterface и записывать в него логи простым и универсальным способом.

С точки зрения разработки это хорошо, не так ли? Я имею в виду, что он предоставляет единый, согласованный способ, на который мы можем сделать ставку для любой библиотеки ведения журналов, которую мы решим использовать в наших проектах. Я расскажу о своей предпочтительной библиотеке позже в статье.

Для тех, кто плохо знаком с объектно-ориентированным программированием или просто интересуется, какую пользу приносит нам согласованный интерфейс, подумайте об этом так: независимо от того, какую систему вы выберете, вы гарантированно получите определенный набор функций, состояний и т. д. можете использовать в своем приложении.

В конечном счете, добавление системы ведения журналов со стандартом, которому она должна следовать, дает множество преимуществ независимо от того, какую библиотеку вы выберете (при условии, что она соответствует PSR-3).

Попробуйте Монолог

Monolog — более или менее де-факто утилита ведения журналов для PHP-приложений.

Интерфейс ведения журнала PSR (и почему ведение журнала имеет значение)

Проект легко добавить через Composer, но он также включает множество различных способов вывода данных:

Monolog отправляет ваши журналы в файлы, сокеты, почтовые ящики, базы данных и различные веб-сервисы. Полный список обработчиков смотрите ниже. Специальные обработчики позволяют создавать расширенные стратегии ведения журналов.

Лично я использовал его только в контексте отправки вывода в файлы; однако иметь возможность выводить его в другие системы (особенно в базы данных, например, при работе с WordPress) — это хорошо. Конечно, вы не хотите злоупотреблять этой способностью.

Во-вторых, важно осознавать, что хотя вы можете создать экземпляр Logger внутри функции или другого класса, существуют и другие, более объектно-ориентированные способы сделать это. PSR-3 покрывает это (как упоминалось выше).

Короче говоря, вы хотите убедиться, что ваш класс принимает экземпляр класса, реализующего LoggerInterface. Monolog реализует указанный интерфейс, так что это не проблема.

Кроме того, что происходит, когда у вас есть группа связанных классов, каждый из которых должен реализовать ведение журнала?

  • Наследуются ли эти классы от общего родителя?
  • Реализуют ли эти классы трейты? (Это вариант, который недавно представил мне друг.)
  • Каждый класс просто принимает зависимость через внедрение конструктора?

Существует множество способов добавления регистраторов в класс, и это зависит от того, как организован ваш проект.

Подробнее о ведении журнала

В любом случае введение входа в приложение важно по целому ряду причин, таких как возможность устранения неполадок, когда что-то не работает должным образом как при разработке, так и при подготовке и особенно в рабочей среде.

Источник записи: tommcfarlin.com

Этот веб-сайт использует файлы cookie для улучшения вашего опыта. Мы предполагаем, что вы согласны с этим, но вы можете отказаться, если хотите. Принимаю Подробнее