используя composer:
composer require wearesho-team/ubkiДля конфигурирования нужного сервиса используется соответствующий ConfigInterface:
Push (экспорт): Push\ConfigInterface
Pull (импорт): Pull\ConfigInterface (в разработке)
Также для каждого сервиса требуется провайдер Authorization\Provider для авторизации.
На выгрузку данных / отправку запроса в реестр:
<?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
);Для каждого сервиса 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);Библиотека находится в разработке
-
Авторизация (Authorization) Документация API
-
Получение данных (Pull)
-
Отправка данных (Push)
-
Отправка запроса на статусы передачи (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 блоке

