UBKI Integration for PHP

1.0.0 2020-11-04 16:19 UTC

This package is auto-updated.

Last update: 2024-04-04 23:59:20 UTC


README

Latest Stable Version Total Downloads Build Status codecov

УБКИ
Changelog

Установка

используя composer:

composer require roskovynskyi/ubki

Конфигурация

Для конфигурирования нужного сервиса используется соответствующий ConfigInterface:

Push (экспорт): Push\ConfigInterface

Pull (импорт): Pull\ConfigInterface (в разработке)

Также для каждого сервиса требуется провайдер Authorization\Provider для авторизации.

Config

На выгрузку данных / отправку запроса в реестр:

<?php

use Wearesho\Bobra\Ubki;

$config = new Ubki\Push\Config(
    'username',
    'password',
    $mode = Ubki\Authorization\ConfigInterface::MODE_TEST // или MODE_PRODUCTION
);

На импорт данных (в разработке):

<?php

use Wearesho\Bobra\Ubki;

$config = new Ubki\Pull\Config(
    'username',
    'password',
    $mode = Ubki\Authorization\ConfigInterface::MODE_TEST // или MODE_PRODUCTION
);

EnvironmentConfig

Для каждого сервиса Push/Pull имплементирован свой EnvironmentConfig, который будет подтягивать переменные из окружения.

Если же они по стандарту не установлены, то они будут взяты по дефолтному значению из имплементированного им интерфейса ConfigInterface.

Основные переменные (зависят от типа сервиса):

Сервис для экспорта:

Environment variable Required Default value in production mode Default value in test mode Value type
UBKI_PUSH_USERNAME yes string
UBKI_PUSH_PASSWORD yes string
UBKI_PUSH_MODE no 0 0 integer (0...1)
UBKI_PUSH_AUTH_URL no Auth production url Auth test url string (url format)
UBKI_PUSH_URL no string (url format)
UBKI_PUSH_REGISTRY_URL no Registry production url Registry test url string (url format)

Сервис для импорта:

Environment variable Required Default value in production mode Default value in test mode Value type
UBKI_PULL_USERNAME yes string
UBKI_PULL_PASSWORD yes string
UBKI_PULL_MODE no 0 0 integer (0...1)
UBKI_PULL_AUTH_URL no Auth production url Auth test url string (url format)
UBKI_PULL_URL no string (url format)

Пример использования:

Рекомендуется использовать контейнер внедрения зависимостей.

Пример отправки запроса в реестр для получения статуса об отправленных отчетах:

<?php

use Wearesho\Bobra\Ubki;

$authProvider = new Ubki\Authorization\Provider(
    new \GuzzleHttp\Client(), // любой клиент, имплементирующий \GuzzleHttp\ClientInterface
    new Psr\Log\NullLogger() // любой логгер, имплементирующий \Psr\Log\LoggerInterface
);

$service = new Ubki\Push\Registry\Service(
    new Ubki\Push\EnvironmentConfig("UBKI_"),
    $authProvider,
    new \GuzzleHttp\Client(), // любой клиент, имплементирующий \GuzzleHttp\ClientInterface
    new Psr\Log\NullLogger() // любой логгер, имплементирующий \Psr\Log\LoggerInterface
);

$request = new Ubki\Push\Registry\Rep\Request(...);
$response = $service->send($request);

Библиотека находится в разработке

  1. Авторизация (Authorization) Документация API

  2. Получение данных (Pull)

  3. Отправка данных (Push)

  4. Отправка запроса на статусы передачи (Push\Registry)

Требования

  • PHP >=7.1
  • Реализация PSR-16 Simple Cache для сохранения ключей авторизации

Разработка

Требования к написанию кода в репозитории:

  • Все изменения загружаются посредством создания отдельного Pull Request
  • Весь код должен соответствовать PSR-2. Для проверки рекомендуется использовать composer lint. Для исправления форматирования composer phpcbf.
  • Для любого функционала, кроме зависимостей, должны быть написаны тесты с покрытием 100%
  • Для сетевых запросов необходимо использовать guzzlehttp/guzzle
  • Для работы со временем необходимо использовать nesbot/carbon
  • Все изменения затрагивающие публичные интерфейсы, добавленные в новой версии должны быть занесены в Changelog
  • Все классы тестов должны содержать @internal в doc блоке

Авторы

Лицензия

MIT
Является частью bobra.io