UBKI PHP 集成

1.0.0 2020-11-04 16:19 UTC

This package is auto-updated.

Last update: 2024-09-05 00:47:37 UTC


README

Latest Stable Version Total Downloads Build Status codecov

УБКИ
变更日志

安装

使用 composer

composer require roskovynskyi/ubki

配置

使用相应的 ConfigInterface 来配置所需的服务的细节。

推送(导出): Push\ConfigInterface

拉取(导入): 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 接口取默认值。

主要变量(取决于服务类型)

导出服务

导入服务

使用示例

建议使用依赖注入容器。

示例:向注册表发送请求以获取已发送报告的状态

<?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. 获取数据(拉取)

  3. 发送数据(推送)

  4. 发送获取传输状态请求(Push\Registry)

要求

  • PHP >=7.1
  • 实现 PSR-16 Simple Cache 以保存授权密钥

开发

仓库代码编写要求

  • 所有更改都通过创建单独的 Pull Request 来加载
  • 所有代码都必须符合 PSR-2。建议使用 composer lint 进行检查。对于格式修复,请使用 composer phpcbf
  • 除了依赖项之外,所有功能都应该有100%的测试覆盖率
  • 对于网络请求,必须使用 guzzlehttp/guzzle
  • 处理时间需要使用 nesbot/carbon
  • 所有影响公共接口的更改(在新的版本中添加)都必须记录在 变更日志
  • 所有测试类都必须包含 doc 块中的 @internal

作者

许可

MIT
bobra.io 的一部分