roskovynskyi / ubki
UBKI Integration for PHP
Installs: 4
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 0
Forks: 2
pkg:composer/roskovynskyi/ubki
Requires
- php: >=7.4
- ext-simplexml: *
- guzzlehttp/guzzle: ^6.3
- horat1us/environment-config: ^1.2
- myclabs/php-enum: ^1.5
- nesbot/carbon: ^2.24 || ^1.33
- psr/log: ^1.0
- psr/simple-cache: ^1.0
Requires (Dev)
- chillerlan/php-cache: ^1.0
- gamez/psr-testlogger: ^2.0
- phpunit/phpunit: ^9.1
- squizlabs/php_codesniffer: ^3.5
This package is auto-updated.
Last update: 2025-11-05 03:25:47 UTC
README
Установка
используя 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);
Библиотека находится в разработке
-
Авторизация (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 блоке