1. YCLIENTS
  2. Маркетплейс интеграций
  3. Плагинизация
  4. Руководство по созданию Backend плагина
  5. SDK Plugin Bundle

SDK Plugin Bundle


Plugin SDK

Мы предоставляем PHP SDK, реализующий интерфейсы для работы с:

  • API (ApiClientInterface).
  • БД (DbInterface).
  • Kafka (KafkaProducerInterface, KafkaConsumerInterface).
  • PSR интерфейсы (Cache, Logger, http-client).

Подключение SDK

composer require yclients-sdk/plugin-sdk-bundle

Использование

Вы можете использовать готовые адаптеры под Symfony, Laravel или реализовать интерфейсы самостоятельно.


Работа с базой через YCLIENTS SDK Bundle

В комплекте идет адаптер DoctrineDatabaseAdapter, реализующий DatabaseContract:

  • create(object): object
  • find(string, mixed): ?object
  • findAll(string): array
  • findBy(string, array, array, ?int, ?int): array
  • findOneBy(string, array): ?object
  • update(object): object
  • delete(object): void

Просто внедрите DatabaseContract в ваш контроллер или сервис и вызывайте нужный метод.


Работа с кэшем через YCLIENTS SDK Bundle

В комплекте идет адаптер CacheAdapter, реализующий контракт CacheContract и обёртывающий Symfony Cache.

Методы адаптера:

  • get(string $key, callable $callback, int | DateInterval | null $ttl): mixed

    Пытается получить значение из кэша по ключу $key. Если в кэше нет записи или она просрочена, выполняет $callback, сохраняет результат с временем жизни $ttl и возвращает его.

Просто внедрите CacheContract в ваш контроллер или сервис через конструктор и вызывайте get() для кэширования любых данных.


Работа с логированием через YCLIENTS SDK Bundle

В комплекте идет адаптер LoggerAdapter, реализующий контракт LoggerContract и оборачивающий стандартный PSR-3 LoggerInterface.

Описание методов

  • emergency(message, context): void логирует чрезвычайно критические ошибки, требующие немедленной реакции;
  • alert(message, context): void логирует ситуации, требующие немедленной, но менее срочной реакции, чем emergency;
  • critical(message, context): void логирует критические условия, например сбои системы или серьёзные сбои компонентов;
  • error(message, context): void логирует ошибки выполнения, которые не требуют немедленного вмешательства (например, исключения в пользовательском коде);
  • warning(message, context): void логирует предупреждения о потенциальных проблемах или нежелательном поведении;
  • notice(message, context): void логирует важные, но не критические события, например завершение фоновых задач;
  • info(message, context): void логирует информационные сообщения об обычном ходе работы приложения;
  • debug(message, context): void логирует отладочную информацию, полезную при разработке и диагностике;
  • log(level, message, context): void универсальный метод, принимающий уровень логирования (PSR-3), сообщение и контекст.

Особенности конфигурации логгера

При настройке LoggerAdapter в контейнере Symfony можно задать сразу два варианта подключения:

  • Через контракт YCLIENTS SDK (LoggerContract) Позволяет внедрять в контроллеры и сервисы именно контракт фреймворка плагина.
  • Через стандартный PSR-3 интерфейс (Psr\Log\LoggerInterface) Обеспечивает совместимость с любыми сторонними библиотеками и кодом, ожидающими PSR-3 логгер.

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

Предыдущая статья Типовая структура плагина на Symfony
Следующая статья Руководство по разработке и безопасности плагинов